黑马程序员技术交流社区
标题:
抽象类和接口有什么区别啊
[打印本页]
作者:
redlong
时间:
2014-4-3 19:56
标题:
抽象类和接口有什么区别啊
本帖最后由 redlong 于 2014-4-3 21:59 编辑
抽象类和接口有什么区别。
作者:
许庭洲
时间:
2014-4-3 20:03
本帖最后由 许庭洲 于 2014-4-3 20:09 编辑
相同点:
1.都不能被直接实例化,都可以通过继承实现其抽象方法;
2.都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:
1.接口支持多继承;抽象类不能实现多继承。
2.接口只能定义抽象规则;抽象类既可以定义规则,还能提供已实现的成员。
3.接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
4.接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
5. 接口只包含方法(Method), 属性(Property),索引器(Index),事件(Event)的签名,但不能定义字段和包含实现的方法;
6. 抽象类可以定义字段,属性,包含有实现的方法。
7. 接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用与引用类型。
作者:
李恒权
时间:
2014-4-3 21:36
区别
1,抽象类里可以有构造方法,而接口内不能有构造方法。
2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5,抽象类中可以包含静态方法,接口内不能包含静态方法。
6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
7,一个类可以实现多个接口,但只能继承一个抽象类。
作者:
茹化肖
时间:
2014-4-3 22:48
在你没有学到高级的时候 你就想着 没区别 就好了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2