/**
* 父类
*
*/
public abstract class BankTemplateMethod {
/**
* 具体方法
*/
public void takeNumber(){
System.out.println("取号排队");
}
/**
* 办理具体的业务 钩子方法:抽象方法,交给子类去实现
*/
public abstract void transact();
/**
* 具体方法
*/
public void evaluate(){
System.out.println("反馈评分");
}
/**
* 模板方法!!!
*/
public final void process(){
this.takeNumber();
this.transact();
this.evaluate();
}
}
public static void main(String[] args) {
// 采用匿名内部类
BankTemplateMethod btm1 = new BankTemplateMethod() {
@Override
public void transact() {
System.out.println("我要存钱!");
}
};
btm1.process();
System.out.println("---------------------------");
BankTemplateMethod btm2 = new BankTemplateMethod() {
@Override
public void transact() {
System.out.println("我要理财!我这里有2000万韩币");
}
};
btm2.process();
}