
package com.itheima.d7_abstract_test;public class Test { public static void main(String[] args) { // 目标:学习一下抽象类的基本使用:做父类,被继承,重写抽象方法 GoldCard c = new GoldCard(); // 创建一个子类对象(可以调用父类的方法) c.setMoney(10000); // 这样就等于往自己卡里面存钱 c.setUserName("dilei"); c.pay(300); System.out.println("当前账户剩余:" + c.getMoney()); }}
抽象方法:没有方法体,让子类自由发挥
package com.itheima.d7_abstract_test;public abstract class Card { private String userName; private double money; /** * 定义一个支付方法:表示卡片可以支付 * 抽象方法:没有方法体,让子类自由发挥 */ public abstract void pay(double money); // 定义一个抽象方法,约束子类一定要完成 public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public double getMoney() { return money; } public void setMoney(double money) { this.money = money; }}
继承了抽象类方法,要重写该方法 快捷键Alt + Enter
package com.itheima.d7_abstract_test;public class GoldCard extends Card { @Override // 继承了抽象类方法,要重写该方法 快捷键Alt + Enter public void pay(double money2) { // 形参 System.out.println("您当前消费:" + money2); System.out.println("您卡片当前的余额是: " + getMoney()); // 优惠价: double rs = money2 * 0.8; // 打8折 System.out.println(getUserName() + ":您实际支付:" + rs); // 更新账户余额 setMoney(getMoney() - rs); }}