两个类依赖的优先方案是抽象依赖。为了使代码之间的依赖成为抽象依赖,根据依赖倒转原则,我们在编程时通常会使得实现类依赖于一个接口类或一个抽象类。这里主要讨论下依赖接口与抽象类的优缺点。
1、 抽象类是可以有代码实现的,而接口中则不会存在具体的代码实现。这对于抽象类的好处是:抽象类可以方便地增加新的方法,其所有子类不需要修改代码就可以获得到这个方法属性;而如果在接口中新增一个方法,那么需要其所有实现类都新增这个方法,如果实现子类较多将会是一件很痛苦的事情。
2、 对于所有java类都可以实现多个接口,但是只能有一个超类。如果一个实体类依赖于多个接口,可以使用一个实现类来完成所有的接口功能;而如果是依赖于多个抽象类,那么就必须实现多个不同的实现类。
3、 也因为第二点区别,使得抽象子类只有一个主要类型,而接口实现类却可以有主要类型和次要类型。这里的主要类型、次要类型可以理解为向实体类提供的主要服务和次要服务。例如HashMap,它的主要类型为Map,次要类型包括Serializable的可序列化。
可以看出抽象类与接口各有优缺点。为了能够在依赖编程中综合接口和抽象类的优点,可以使用下面的方式进行:
1、 抽象类可以实现多个接口,并可以对部分方法有代码实现。
2、 所有实现类都通过继承抽象类实现
3、 如果有需要增加新的方法,需要在接口、抽象类和需要进行的实现类中修改代码,而不用每一个子实现类都修改代码。
- 大小: 18.9 KB
- 大小: 9.6 KB
分享到:
相关推荐
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
抽象类与接口 抽象类与接口 抽象类与接口 抽象类与接口
java 抽象类与接口的练习,包括代码及注释,个人笔记
第7章 抽象类与接口.ppt第7章 抽象类与接口.ppt
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
Java抽象类与接口实验报告
深入浅出的说明java抽象类与接口区别,让初学者更好的理解java抽象类与接口的概念
抽象类和接口实验报告
抽象类与接口的区别,抽象类与接口的具体应用
abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的...
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
此书对于你学习Java抽象类和接口有非常大的帮助
学生通过对该项目整体框架的搭建和对动物城信息管理等模块的设计与功能实现,训练了学生对项目框架的搭建、类的封装、抽象类定义与继承、接口的定义与接口的实现等Java OOP面向对象知识点的掌握。 本项目主要包括...
Java中的类、抽象类和接口的区别和联系
java 抽象类与接口的区别
详细介绍了dot Net中抽象类与接口的... 通过相同与不同的比较,我们只能说接口和抽象类,各有所长,但无优略。在实际的编程实践中,我们要视具体情况来酌情量才,但是以下的经验和积累,或许能给大家一些启示...
抽象类和接口 区别分析抽象类和接口 区别分析
1. 设计并使用抽象类; 2.学习如何定义接口,掌握接口的实现方式,使用实现了接口的类; 3.理解接口与抽象类的区别。
该资源对接口与抽象类作了详细分析与比较,相信你看了之后,会彻底的明白了,java学习更上一层楼
学习java的抽象类和接口,入门抽象类和接口必须学会这些内容