以学生做试卷为例。
package com.wzs.design;
/**
* 大话设计模式--page93 模板方法模式
*
* @author Administrator
*
*/
public class TemplateMethod {
public static void main(String[] args) {
TestPaperA testPaperA = new TestPaperA();
testPaperA.answer1();
testPaperA.answer2();
testPaperA.answer3();
System.out.println();
TestPaperB testPaperB = new TestPaperB();
testPaperB.answer1();
testPaperB.answer2();
testPaperB.answer3();
}
}
/*
* 考试试卷
*/
abstract class TestPaper {
// 第一题
public void testQuestion1() {
System.out.println("1.认为“民为贵,社稷次之,君为轻”的思想家是( )A.孔子 B.孟子C.庄子 D.左丘明");
}
// 第二题
public void testQuestion2() {
System.out.println("2.李斯的《谏逐客书》选自( )A.《左传》B.《史记》C.《战国策》D.《国语》");
}
// 第三题
public void testQuestion3() {
System.out.println("3.《五代史伶官传序》中,告诫人们要居安思危的警戒性语句是( )A.祸患常积于忽微,智勇多困于所溺 B.满招损,谦得益");
}
// 第一题答案
public abstract void answer1();
// 第二题答案
public abstract void answer2();
// 第三题答案
public abstract void answer3();
}
/*
* 学生A试卷
*/
class TestPaperA extends TestPaper {
public void answer1() {
System.out.println("A");
}
public void answer2() {
System.out.println("B");
}
public void answer3() {
System.out.println("C");
}
}
/*
* 学生B试卷
*/
class TestPaperB extends TestPaper {
public void answer1() {
System.out.println("B");
}
public void answer2() {
System.out.println("C");
}
public void answer3() {
System.out.println("D");
}
}