题目:相同的两份试卷,甲乙两个人做,答案不同

public class TestPager {public void question() {System.out.println("题目:答案是A、B、C、D中哪一个?");System.out.println("答案:" + answer());}protected String answer() {return "";}
}

public class TestPagerA extends TestPager {@Overrideprotected String answer() {return "A";}
}public class TestPagerB extends TestPager {@Overrideprotected String answer() {return "B";}
}

public class Test {public static void main(String args[]) {System.out.println("甲的试卷");TestPager studentA = new TestPagerA();studentA.question();System.out.println("乙的试卷");TestPager studentB = new TestPagerB();studentB.question();}
}

打印结果:

甲的试卷
题目:答案是A、B、C、D中哪一个?
答案:A
乙的试卷
题目:答案是A、B、C、D中哪一个?
答案:B

这其实就是通过面向对象的三大特性实现代码的复用,使重复代码降到最低

转载于:https://www.cnblogs.com/anni-qianqian/p/7424134.html

《大话设计模式》--模板模式相关推荐

  1. linkin大话设计模式--模板方法模式

    linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...

  2. 12. 星际争霸之php设计模式--模板模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  3. Java设计模式-模板模式

    Java设计模式-模板模式 什么是模板模式? 模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框架.结构.原型.定义一个我们共同遵守的约定. 定义模板,我们的剩余工作就是对其进行充实. ...

  4. Java设计模式—模板模式(Template)

    模板模式 业务需求 编写豆浆制作程序 选材-添加配料-浸泡-豆浆机打碎 选材.浸泡.打碎这几步对于制作不同豆浆都是一样的 比较简单,这里不再使用传统方法,直接上设计模式 模板模式基本介绍 模板模式,在 ...

  5. 【设计模式】Java设计模式 - 模板模式

    [设计模式]Java设计模式 - 模板模式

  6. linkin大话设计模式--桥接模式

    linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...

  7. linkin大话设计模式--常用模式总结

    linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter( ...

  8. C语言实现设计模式—模板模式

    文章目录 C语言实现设计模式-模板模式 模板模式介绍 UML用例说明 实际场景使用 框架结构[共用框架]-通用的串口协议分析函数 不同实现-数据类型区别 C语言实现设计模式-模板模式 模板模式介绍 在 ...

  9. 大话设计模式—模板方法模式

    在模板方法模式(TemplateMethod Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型的设计模式属于 ...

  10. PHP设计模式——模板模式

    声明:本系列博客参考资料<大话设计模式>,作者程杰. 模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的 ...

最新文章

  1. 使用rsync同步linux服务器上的文件到windows上
  2. 如何对512M内存的vps apache进行优化配置(perfork模式)
  3. 使用格式工厂把视频进行旋转
  4. 第一章 简单工厂模式
  5. Java开发代码规范之编程规约---命名风格
  6. Linux学习之Ubuntu安装Java
  7. php 输出 继续执行,使用PHP中的实时输出运行进程
  8. python操作haproxy配置文件实例
  9. JavaSE基础笔记十二
  10. js中==和===区别
  11. Ubuntu 10.10用LibreOffice替换OpenOffice
  12. notepad如何自动对齐_notepad怎么对齐
  13. 适合英语学习的100部电影
  14. matlab 电磁场与电磁波,MATLAB在电磁场与电磁波课程教学中的应用
  15. tiny6410烧录
  16. IntelliJ IDEA必会的几个常用设置
  17. 【微信小程序】横向/纵向布局(98/100)
  18. 计算机三种不同类型的用户账户,网络操作系统——Windows Server 2008篇 教学课件 1 作者 刘本军 李建利 [项目5]用户与组的管理.ppt...
  19. 史上最全!支持EOS映射的交易所统计|关于EOS映射,你想知道的都在这
  20. Git!从零开始用连接远程仓库!![全平台]

热门文章

  1. 【转】jquery 注册事件的方法
  2. codevs1219 骑士遍历(棋盘DP)
  3. 常用函数(字符和字符串)
  4. Spring BeanDefinition
  5. vue 新窗口打开外链接
  6. npm run dev 在本地调试出现跨域问题解决方法
  7. JavaScript 标准参考教程-阅读总结(三)
  8. linux 安装RedisLive
  9. 微服务扩展新途径:Messaging
  10. 深入理解并行编程-分割和同步设计(四)