模版方法模式

我们拿试卷举例

代码示例

试卷类

public abstract class CusPaper {

    public void cusQuestion1(){

        System.out.println("以下不属于四大名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活");
    }

    public abstract String answer1();

    public void cusQuestion2(){

        System.out.println("以下属于外国名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活");
    }

    public abstract String answer2();

}

A同学

public class StudentA extends CusPaper {


    @Override
    public String answer1() {
        return "A";
    }

    @Override
    public String answer2() {
        return "B";
    }
}

B同学

public class StudentB extends CusPaper {


    @Override
    public String answer1() {
        return "D";
    }

    @Override
    public String answer2() {
        return "A";
    }
}

使用

public static void main(String[] args) {

        StudentA a = new StudentA();
        a.cusQuestion1();
        System.out.println("A同学的答案是" + a.answer1());

        a.cusQuestion2();
        System.out.println("A同学的答案是" + a.answer2());

        StudentB b = new StudentB();
        b.cusQuestion1();
        System.out.println("B同学的答案是" + b.answer1());

        a.cusQuestion2();
        System.out.println("B同学的答案是" + b.answer2());
    }

打印

以下不属于四大名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活
A同学的答案是A
以下属于外国名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活
A同学的答案是B
以下不属于四大名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活
B同学的答案是D
以下属于外国名著的是:a.西游记 b.红楼梦 c.水浒传 d.复活
B同学的答案是A
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容