
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);
}
}