public class TestPaperA {
//试卷第一题
public void testQuestion1(){
System.out.println("小龙女是杨过的什么亲戚?() A.小姨妈 B.大姨妈 C.姑妈 D.舅妈");
System.out.println("答案:C");
}
//试卷第二题
public void testQuestion2(){
System.out.println("全真教的首任掌门是谁?A.周伯通 B.欧阳锋 C.王重阳 D.西门吹牛");
System.out.println("答案:C");
}
//试卷第三题
public void testQuestion3(){
System.out.println("《天龙八部》中被封为南院大王的大侠是谁?A.段誉 B.乔峰 C.慕容复 D.段智兴");
System.out.println("答案:B");
}
}
public class TestPaperB {
//试卷第一题
public void testQuestion1(){
System.out.println("小龙女是杨过的什么亲戚?() A.小姨妈 B.大姨妈 C.姑妈 D.舅妈");
System.out.println("答案:A");
}
//试卷第二题
public void testQuestion2(){
System.out.println("全真教的首任掌门是谁?A.周伯通 B.欧阳锋 C.王重阳 D.西门吹牛");
System.out.println("答案:C");
}
//试卷第三题
public void testQuestion3(){
System.out.println("《天龙八部》中被封为南院大王的大侠是谁?A.段誉 B.乔峰 C.慕容复 D.段智兴");
System.out.println("答案:D");
}
}
public class ShowAnswer {
public static void main(String[] args) {
System.out.println("学生甲的试卷");
TestPaperA stuA = new TestPaperA();
stuA.testQuestion1();
stuA.testQuestion2();
stuA.testQuestion3();
System.out.println("学生乙的试卷");
TestPaperB stuB = new TestPaperB();
stuB.testQuestion1();
stuB.testQuestion2();
stuB.testQuestion3();
}
}
public abstract class TestPaper {
//试卷第一题
public void testQuestion1(){
System.out.println("小龙女是杨过的什么亲戚?() A.小姨妈 B.大姨妈 C.姑妈 D.舅妈");
System.out.println("答案:" + answer1());
}
//试卷第二题
public void testQuestion2(){
System.out.println("全真教的首任掌门是谁?A.周伯通 B.欧阳锋 C.王重阳 D.西门吹牛");
System.out.println("答案:" + answer2());
}
//试卷第三题
public void testQuestion3(){
System.out.println("《天龙八部》中被封为南院大王的大侠是谁?A.段誉 B.乔峰 C.慕容复 D.段智兴");
System.out.println("答案:" + answer3());
}
//这三个钩子方法是给每个子类去实现,并返回答案的
public abstract String answer1();
public abstract String answer2();
public abstract String answer3();
//模板方法,考试的过程,定义基本的考试过程,子类回调
public void exam(){
testQuestion1();
testQuestion2();
testQuestion3();
}
}
public class TestPaperA extends TestPaper{
@Override
public String answer1() {
return "A";
}
@Override
public String answer2() {
return "B";
}
@Override
public String answer3() {
return "D";
}
}
public class ShowAnswer {
public static void main(String[] args) {
TestPaper testPaper = new TestPaperA();
testPaper.exam();
}
}
public abstract class AbstractClass {
//一些抽象行为,可以理解为重复不变的方法,提取到抽象类
public abstract void primitiveOperation1();
public abstract void primitiveOperation2();
//模板方法,给出了具体逻辑的骨架,而逻辑的组成是一些相应的抽象操作,他们都推迟到子类实现
public void templateMothed(){
primitiveOperation1();
primitiveOperation2();
}
}
public class ConcreteClassA extends AbstractClass{
@Override
public void primitiveOperation1() {
System.out.println("子类A的操作1");
}
@Override
public void primitiveOperation2() {
System.out.println("子类A的操作2");
}
}
public class ConcreteClassB extends AbstractClass{
@Override
public void primitiveOperation1() {
System.out.println("子类B的操作1");
}
@Override
public void primitiveOperation2() {
System.out.println("子类B的操作2");
}
}
public class Show {
public static void main(String[] args) {
AbstractClass c;
c = new ConcreteClassA();
c.templateMothed();
c = new ConcreteClassB();
c.templateMothed();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有