A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© redlong 中级黑马   /  2014-4-3 19:56  /  1013 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 redlong 于 2014-4-3 21:59 编辑

抽象类和接口有什么区别。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

正序浏览
在你没有学到高级的时候 你就想着 没区别 就好了
回复 使用道具 举报
区别
   1,抽象类里可以有构造方法,而接口内不能有构造方法。
   2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
   3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
   4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
   5,抽象类中可以包含静态方法,接口内不能包含静态方法。
   6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public  static类型,并且默认为public static类型。
   7,一个类可以实现多个接口,但只能继承一个抽象类。
回复 使用道具 举报
本帖最后由 许庭洲 于 2014-4-3 20:09 编辑

相同点:
1.都不能被直接实例化,都可以通过继承实现其抽象方法;
2.都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:
1.接口支持多继承;抽象类不能实现多继承。
2.接口只能定义抽象规则;抽象类既可以定义规则,还能提供已实现的成员。
3.接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
4.接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
5. 接口只包含方法(Method), 属性(Property),索引器(Index),事件(Event)的签名,但不能定义字段和包含实现的方法;
6. 抽象类可以定义字段,属性,包含有实现的方法。
7. 接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用与引用类型。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马