码迷,mamicode.com
首页 > 其他好文 > 详细

接口和抽象类 分析总结

时间:2018-05-17 22:05:25      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:私有   存在   抽象类   网上   完成   编写   实现   阶段   创建对象   

相似:

1、接口和抽象类都是继承树的上层。
2、都不可被实例化。
3、都能包含抽象的方法。
4、接口可以认为是一种特殊形式的抽象类。


区别:
1、接口是对动作的抽象【定义】可以被认为是一组规则的集合,抽象类是对相似类的抽象【定义】。
2、接口中的方法,只能是抽象方法。抽象类中,可以有抽象方法,也可以有普通方法【有具体行为的方法、非抽象方法】。
3、定义抽象类是为了代码复用,定义接口是为了实现多态。【从动机上看】
4、子类可有实现多个接口,但只能继承子一个父类【抽象类】。
5、接口中只能定义静态常量【基本数据类型为static】,抽象类中可以定义普通成员变量,也可以定义静态常量。
6、接口不能包含构造器,抽象类可以包含构造器【抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作】。

 

抽象方法【接口方法也可以被看作是抽象方法】:
1、只声明,不实现。
2、抽象方法,只能存在于抽象类【接口】中,抽象类中可以没有抽象方法。
3、子类必须实现抽象方法【接口方法】,抽象类继承抽象类【接口】,可以不实现。
4、抽象方法,不能是静态的、私有的。


应用分析:
1、抽象类的功能要大于接口,所以定义抽象类的代价高。
2、抽象类中可以存在非抽象方法,能够保证实现的层次关系,可以避免子类中存在重复代码,重在代码复用。
3、定义抽象类,要编写出可能存在的子类的所以共性。接口只针对动作,在设计阶段会降低难度。
4、对于已经存在的结构,我们可以很方便的从类中抽象出新的接口,但要从类中抽象出抽象类,难度会增大。
5、如果依赖抽象类来定义行为,往往导致过于复杂的继承关系,而通过接口定义行为能 够更有效地分离行为与实现,为代码的维护和修改带来方便。

 

 

 

注:该篇文章,参考了多本书籍以及网上的参考信息。再此就不全部列举了。

接口和抽象类 分析总结

标签:私有   存在   抽象类   网上   完成   编写   实现   阶段   创建对象   

原文地址:https://www.cnblogs.com/765boy/p/9049048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!