1,父类(Card)
package Card02;
/**
* @author Jztice5
* @date 2022年01月24日 9:51
*/
public abstract class Card {
public String name;
public double balance;
public abstract double setPayment(double money);
//模板方法:(巧用传参)
public void ShowPay(double money){
System.out.println("登录成功");
double m1=setPayment(money);
System.out.println("消费额:"+m1);
}
//标准类格式:
public Card() {
}
public Card(String name, double balance) {
this.name = name;
this.balance = balance;
}
}
2,子类1(GCard)
package Card02;
/**
* @author Jztice5
* @date 2022年01月24日 9:51
*/
public class GCard extends Card{
@Override
public double setPayment(double money) {
return money * 0.8;
}
//标准类格式
public GCard() {
}
public GCard(String name, double balance) {
super(name, balance);
}
}
3,子类2(SCard)
package Card02;
/**
* @author Jztice5
* @date 2022年01月24日 9:51
*/
public class SCard extends Card{
@Override
public double setPayment(double money) {
return money * 0.85;
}
//标准类格式
public SCard() {
}
public SCard(String name, double balance) {
super(name, balance);
}
}
4,测试类(Text)
package Card02;
/**
* @author Jztice5
* @date 2022年01月24日 9:51
*/
public class Text {
public static void main(String[] args) {
GCard gc = new GCard();
//调用父类模板方法
gc.ShowPay(300);
SCard sc = new SCard();
//调用父类模板方法
sc.ShowPay(300);
}
}