黑马程序员技术交流社区
标题:
接口和抽象类
[打印本页]
作者:
一切都好
时间:
2013-12-29 21:18
标题:
接口和抽象类
本帖最后由 一切都好 于 2014-1-2 10:01 编辑
接口中的方法和抽象类中的抽象方法有什么区别吗?
作者:
许庭洲
时间:
2013-12-29 21:30
1. 接口,类和结构都可以从多个接口继承;
2. 接口类似于抽象基类,继承接口的任何非抽象类型都必须实现接口的所有成员;
3. 接口和类都可以包含事件,索引器,方法和属性;
4. 类定义可以在不同的源文件之间进行拆分;
5. 接口可以多继承,类只能单继承;
6. 接口不包含方法的实现;
7. 不能直接实例化接口。
作者:
dongqinglove
时间:
2013-12-29 21:47
(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法
(2) 抽象类不能被实例化
(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
(4) 具体派生类必须覆盖基类的抽象方法
(5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们
(6) 接口不能被实例化
(7) 接口只能包含方法声明
(8) 接口的成员包括方法、属性、索引器、事件
(9) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员
作者:
з︶_伱眼裏
时间:
2013-12-29 21:55
接口和抽象类的定义类似、区别是:一个类实现接口、必须实现接口里的所有方法、而且一个类可以实现多个接口(相当于多继承)接口使用interface关键字、而抽象类使用的是abstract 关键字、一个类只能继承一次。继承抽象类的话、是可以不全部实现他的所有方法的。但是你可以重写他的方法
抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。
作者:
qly2046
时间:
2013-12-29 22:08
一个类可以有多个接口 只能有继承一个父类
抽象类可以有构造方法,接口中不能有构造方法。
抽象类中可以有普通成员变量,接口中没有普通成员变量
接口里边全部方法都必须是abstract的 抽象类的可以有实现了的方法
抽象类中的抽象方法的访问类型可以是public,protected 但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
抽象类中可以包含静态方法,接口中不能包含静态方法
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
作者:
liulinaxue
时间:
2014-1-1 21:43
是一样的吧。参考:http://www.cnblogs.com/adforce/archive/2011/04/18/2019690.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2