接口定义加强

在讲解接口定义加强之前,首先看看分析一个实际问题。
当一个接口的子类经过发展后,形成众多后代,如果此时发现接口中应该还有新加一个方法,此时怎么办?

  • 接口中新增一个方法声明,然后所有子类粘贴无数次;
  • 或者,如果所有的子类都使用了抽象类,那么就要对所有的子类考虑继承关系。
    造成这个尴尬局面的原因是:接口只是声明了方法,而没有具体的实现。随着时间的推进,如果出现了上述问题,该接口就将作废。

JDK8中为了解决上述问题,专门提供了两类新的结构:

  • 通过default定义普通方法,需要通过对象调用
  • 使用static来定义普通方法,可以通过类名进行调用
接口上追加的新功能
接口上的新功能2

新功能的接口更加类似抽象类了,区别在于,接口依然可以实现多继承,但是抽象类却只能单继承。

总结

  1. 最好不要在程序设计初期就进行接口定义加强的使用,这样破坏了接口的设计规范;
  2. 接口定义加强是由于时间一长,许多支持出现问题时候,才提出的一种挽救性的操作,不属于标准设计。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,302评论 25 708
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,227评论 0 5
  • 这篇文章是一个星期之前就写完了的,但是没有电子存档,我还是喜欢用纸笔写东西的感觉. 参加学霸猫的 BVM 课程,收...
    小浩loft阅读 849评论 1 51
  • 朋友L是一名钢琴老师,平时接触的孩子和家长都比较多。昨天她问我:你能给予你孩子的爱是什么? 我想了想,分为两个答案...
    吉祥小姐姐阅读 458评论 0 0