黑马程序员技术交流社区
标题:
接口和抽象类关系
[打印本页]
作者:
旧人勿恋
时间:
2015-4-16 19:57
标题:
接口和抽象类关系
抽象类与接口:
抽象类:
一般用于描述一个体系单元,将一组共性内容进行抽取,特点:可以在类中定义抽象内容让子类实现,
可以定义非抽象内容让子类直接使用。它里面定义的都是一些体系中的基本内容。
接口:
一般用于定义对象的扩展功能,是在继承之外还需这个对象具备的一些功能。
抽象类和接口的共性:
都是不断向上抽取的结果。
抽象类和接口的区别:
1
:抽象类只能被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2
:抽象类中可以定义非抽象方法,子类可以直接继承使用。
接口中都有抽象方法,需要子类去实现。
3
:抽象类使用的是is a 关系。
接口使用的 like a 关系。
4
:抽象类的成员修饰符可以自定义。
接口中的成员修饰符是固定的。全都是public的
作者:
!85684009ex
时间:
2015-5-18 23:19
好厉害!膜拜大神!
作者:
guoyangpeng
时间:
2015-5-18 23:21
新手飘过,学习了
作者:
Baytree
时间:
2015-5-18 23:56
接口有点像小时候的红白机卡槽,只要方法一致,能插进去通电就能用。这里的关键是方法一致,你可以认为接口是一个抽象方法的封包,里面并没有提供状态。所以也有人说接口是面向方法的。而抽象类,很大程度是因为他内部含有抽象方法,是一个半成品,他是一个非抽象类实现过程的中间步骤。但是他可能已经含有状态或者一部分非抽象方法,这里就决定了接口和抽象类不能相互替代。正如上面所说,抽象方法内部可能含有非抽象的方法,这样抽象类就无法被多承继(菱形继承问题),而接口因为内部都是抽象方法,所以并没有这个问题。当然,这些概念都是比较陈旧的,在1.8时候为了和Lambda函数做对接,现在接口可以有非抽象方法,有兴趣请自行百度。
作者:
陈明佳
时间:
2015-5-19 20:31
说的好啊。
作者:
Hison_lian
时间:
2015-5-19 21:04
赞一个,好好学
作者:
我干阿衰
时间:
2015-5-19 21:27
牛啊,,,,
作者:
纯情花心男
时间:
2015-5-19 21:45
谢谢分享.......................
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2