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