黑马程序员技术交流社区

标题: abstract class 和 interface 有什么区别 [打印本页]

作者: 嗯十一点晚安    时间: 2015-8-5 09:25
标题: abstract class 和 interface 有什么区别
本帖最后由 嗯十一点晚安 于 2015-8-11 08:56 编辑

abstract class和interface有什么区别

作者: artemiseven    时间: 2015-8-5 09:41
abstract中可以有一般方法和抽象方及属性,而interface(接口)中一般抽取方法,不会有属性的存在,而且在interface中只有抽象方法
作者: codersun    时间: 2015-8-5 09:51
你可以这么理解,interface是比抽象类更抽象的类
作者: Clouddd    时间: 2015-8-5 10:09
首先abstract是指得是抽象类,interface指的是接口。
abstract泛指的有公共属性的类,接口是特定属性的。
打个比方:
公交车,自行车都属于交通工具(abstract),都带有行驶这个方法,而公交车特有吹空调(interface)这个方法。
这是两者在思想上的一些小差别,你看看代码和讲解,很快就可以弄明白了。
两者在细节上也是有些小差别的,例如接口只能定义常量(public static final)等,希望你可以动手自己去查看哦!
最后祝你学习愉快~
作者: 一枚小小媛    时间: 2015-8-6 23:09
再拓展一小点来说,其实就是java中的 抽象 与 接口的对比了。
接口和抽象类之间的关系:
【一】相同点:
①接口和抽象了都不能被实例化,它们都位于继承树的顶端,用于被其他的类实现和继承。
②接口和抽象类都是可以包含抽象方法的,实现接口或是继承抽象类的普通子类都必须实现这些抽象方法。
【二】不同点:
①接口只能包含抽象方法,不能包含已经提供实现的方法;抽象类则完全可以包含普通的方法
②接口不能定义静态方法;抽象类完全可以定义静态方法。
③接口中只能定义静态常量Field,不能定义普通的Field;抽象类既可以定义普通的Field也能定义静态常量Field
④接口不能包含构造器;抽象类中可以包含构造器,抽象类中的构造器并不是用于创建对象的,而是让其子类调用这些构造器来完成抽象类的初始化操作。
⑤接口里面不能够包含初始化块;但是抽象类里面则完全可以包含初始化块
⑥一个类最多只能有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口可以弥补Java中的单继承的不足。

大概是这些吧,楼主可以再多看看,写写demo
[女王之路]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2