//模板类
abstract class Paper{
public void TestQuestion1(){
System.out.println("what is your name?");
System.out.println("" + answer1());
}
abstract public String answer1();
public void TestQuesiton2(){
System.out.println("how old are you?");
System.out.println("" + answer2());
}
abstract public String answer2();
public void finish(){
TestQuestion1();
TestQuesiton2();
}
}
class XiaoMing extends Paper{
public String answer1(){
return "xiao ming";
}
@Override
public String answer2() {
return "18";
}
}
class XiaoHong extends Paper{
public String answer1(){
return "xiao Hong";
}
@Override
public String answer2() {
return "17";
}
}
public class TestTemplate {
public static void main(String[] args){
new XiaoHong().finish();
new XiaoMing().finish();
}
}
结果
what is your name?
xiao Hong
how old are you?
17
what is your name?
xiao ming
how old are you?
18
模板方法模式:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。