package com.itheima.d9_abstract_template;
import javax.xml.transform.Result;
public abstract class Account {
private String cardID;
private double money;
public Account() {
}
public Account(String cardID, double money) {
this.cardID = cardID;
this.money = money;
}
/**
* 模板方法!
* @return
*/
public final void handle(String loginName, String password){
//a.判断登录是否成功
if("itheima".equals(loginName) && "123456".equals(password)){
System.out.println("登录成功..");
//b.正式结算利息
//当前模板方法知道所有子类账户都要结算利息,但是具体怎么结算,模板不清楚,交给具体的子类来计算
double result = calc();
//c.输出利息详情
System.out.println("本账户利息是:" + result);
}else{
System.out.println("用户名或者密码错误了");
}
}
public abstract double calc();
public String getCardID() {
return cardID;
}
public void setCardID(String cardID) {
this.cardID = cardID;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
package com.itheima.d9_abstract_template;
/**
* 活期账户
*/
public class CurrentAccount extends Account{
public CurrentAccount(String cardID, double money) {
super(cardID,money);
}
@Override
public double calc() {
//b.正式结算利息
double result = getMoney() * 0.0175;//结算利息了
return result;
}
}
package com.itheima.d9_abstract_template;
public class Test {
public static void main(String[] args) {
CurrentAccount acc = new CurrentAccount("ICBC-111", 10000);
acc.handle("itheima","123456");
}
}