假设有这样的代码:

F f = new G();
f.do();
f.cook();
...

F 是一个接口,G 是 F 的一个实现类(也叫具体类/派生类)。

如果现在需要另外一个实现类 H 采用其他技术实现接口 F 的所有抽象方法,那么只要修改一条代码:

// 只修改这条代码
F f = new H();// 方法调用的代码都不要修改
f.do();
f.cook();
...

因为 G、H 都是接口 F 的实现类,所以都有 do()cook() 方法,只是方法的实现技术或者逻辑不同,这只是内部代码的问题,不影响外部的正常调用。所以 f.do()f.cook() 等相关代码都不需要修改。

Java 的面向接口编程相关推荐

  1. Java面向接口编程,低耦合高内聚的设计哲学

    接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极大的降低程序中各个模块之间的耦合,提高系统的可维护性以及可扩展性. 因此,很多的软件架构设计理念都倡导"面向接口编程"而 ...

  2. Java 面向抽象编程和面向接口编程

    以下内容来自<Java 2实用教程>,主编:耿祥义.张跃平 鉴于面向抽象编程和面向接口编程思维培养的重要性,写此博客巩固. 面向抽象编程: 在设计程序时,经常会使用到abstract类,其 ...

  3. Java中的面向接口编程

    面向接口编程是很多软件架构设计理论都倡导的编程方式,学习Java自然少不了这一部分,下面是我在学习过程中整理出来的关于如何在Java中实现面向接口编程的知识.分享出来,有不对之处还请大家指正. 接口体 ...

  4. java继续_Java中消除实现继续和面向接口编程

    在匆忙之际理清消除实现继续和面向接口编程这样两个大题目可不是一件轻易的事情,尤其考虑到自身的熟悉水平.坦白的说,这又是一篇"炒冷饭"的文章,但这"冷饭"又确实不 ...

  5. Java基础-面向接口(interface)编程

    Java基础-面向接口(interface)编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的&q ...

  6. 黑马java教程是什么_Java教程:揭秘什么是面向接口编程

    先用一个案例来给大家说明一下面向接口编程. 案例:有一个电脑类(Computer),电脑除了有基本的开机关机功能外,还有连接任何外接设备的功能,比如能电脑能连接外置键盘(Keyboard),鼠标(Mo ...

  7. java的知识点13——多态、对象的转型(casting)、final关键字、抽象方法和抽象类、接口的作用、如何定义和使用接口?、接口的多继承、面向接口编程

    多态 多态指的是同一个方法调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关). 2. 多态的存在 ...

  8. java 接口,接口的特性,接口实现多态,面向接口编程

    package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式* 形式:public interface 接口名称{}* 接口不能拥有构造方法,不 ...

  9. 为什么有人说面向对象编程就是面向接口编程?

    "面向对象编程就是面向接口编程" 这句话相信, 很多人都在网上见过, 装b利器. 我一开始也是这么想的, 那些装b者丢下这一句, 就没下文了. 首先, 我认为这句话是1个假命题. ...

最新文章

  1. 支付领域的未来与生物识别息息相关
  2. C#文件夹权限操作工具类
  3. Fibonacci数列 递归 杨辉三角 动态规划
  4. java map null吗_Java: Map里面的键和值可以为空吗?
  5. 工程电磁场与电磁波第1章——矢量分析
  6. 我画了35张图,就是为了让你深入 AQS!
  7. postgre管理员 无法访问表_postgresql – 授予用户对所有表的访问权限
  8. win7重置密码的方法
  9. 编写程序模拟“主人”喂养“宠物”的场景,利用多态的思想!!!
  10. java中的泛型(E)
  11. java已知 求p_Java 0520 第五次课作业
  12. 我一定要让所有人都知道awk这个实用操作
  13. 十二、用Axis操作 Header头部信息
  14. Codeforces 1009E Intercity Travelling 【期望】【概率】
  15. 学刘红杰老师博客营销,知如何提高博客访问流量
  16. C++面向对象小练习:几何图形类
  17. 用Python做一个久坐提醒小助手
  18. 读书笔记--关键对话
  19. .CN 根域名被攻击至瘫痪,谁之过?
  20. 周期训练理论与方法pdf_周期_PDF图书下载_(美) 图德·邦帕 (Tudor O.Bompa) (美)_免费PDF电子书下载_第一图书网...

热门文章

  1. jboss入门_JBoss Forge NetBeans集成–入门
  2. java ee打印功能_Java EE:异步构造和功能
  3. JDK 9、10和11中的安全性增强
  4. 高级java开发_我最喜欢的Java高级开发人员书籍
  5. how2java_HOW-TO:在Spring 4和Java 7中使用@PropertySource批注
  6. maven 部署nexus_Maven部署到Nexus
  7. jclouds_使用jclouds在S3上分段上传
  8. visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX)
  9. JUnit 5 –扩展模型
  10. jsf集成spring_Spring和JSF集成:转换器