黑马程序员技术交流社区
标题:
抽象类和接口的区别是什么?,它们分别解决的问题领域是...
[打印本页]
作者:
熊永标
时间:
2013-1-10 09:11
标题:
抽象类和接口的区别是什么?,它们分别解决的问题领域是...
本帖最后由 张向辉 于 2013-1-16 12:18 编辑
抽象类和接口的区别是什么?,它们分别解决的问题领域是什么?
作者:
黄锦成
时间:
2013-1-10 09:18
按照我的理解:接口是用来定义行为的,由实现类自己实现;抽象类是一些类的共性,有些功能确定的,有些不确定的就用抽象描述。具体应用方面,我还没自己定义过抽象类来用
作者:
郑传庆
时间:
2013-1-10 09:22
{:soso_e107:}我就不说了,因为类似的贴已经 有过了,LZ可以去参考:
http://bbs.itheima.com/forum.php ... 4%E5%8C%BA%E5%88%AB
作者:
徐帅
时间:
2013-1-10 09:28
相同点:
1> 都可以在内部定义抽象方法。
2> 通常都在顶层。
3> 都不可以实例化,都需要子类来实现。
不同点:
1> 抽象类中可以定义抽象方法和非抽象方法,而接口中只能定义抽象方法。
2> 接口的出现可以多实现,抽象类只能单继承。也就是说,接口的出现避免了单继承的局限性。
3> 继承和实现的关系不一致。
继承:is a,谁是谁的一种,所属关系,具备体系中的基本功能。
实现:like a 像谁
对于抽象类和一般类:
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
该如何描述事物,还如何描述事物,只不过,该事物出现了一些不确定的部分,也是该事物的功能,需要明确出现。
但是无法定义主体。通过抽象方法来表示。抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。
对于接口的理解:
可以认为是一个特殊的抽象类,当抽象类中的方法全是抽象的,那么该类可以通过接口的形式来表示。
接口是对外暴露的规则。
接口是功能的扩展。
接口的出现降低了耦合性
所以,扩展功能定义在接口中,接口没有特有数据,只是对于类功能的扩展,所需实现所有的抽象方法。
抽象类,它还是一个类,所以它有特有的数据和方法,只是有一些无法确定的部分,我们把它定义为抽象的,子类只需继承,并实现抽象的方法即可。
希望对楼主有帮助
作者:
高浩
时间:
2013-1-16 20:55
本帖最后由 高浩 于 2013-1-16 20:57 编辑
接口是来实现的,抽象类是用来继承的
接口是功能的扩展。
接口的出现降低了耦合性
他们的共同点就是都是抽象的,里面的抽象方法都必须要在其子类中进行覆盖,具有具体的方法体,
因为都是模糊的描述,所以是抽象的,如果想把其描述清晰的话就要进行方法的覆盖,这样才可以实例个实际存在的对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2