package templateMethod;
/***
* 模拟银行取款
* @author zw
*
*/
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();
}
}
package templateMethod;
/***
* 子类不能调用父类,只能父类调用子类
* @author zw
*
*/
public class Client {
public static void main(String[] args) {
//匿名内部类
BankTemplateMethod btm = new BankTemplateMethod() {
@Override
public void transact() {
// TODO Auto-generated method stub
System.out.println("我要取款");
}
};
btm.process();
}
}