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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王起 于 2013-3-16 14:10 编辑

如题,谁能详细分享下自己对C#接口与抽象类的区别的理解?

评分

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

查看全部评分

1 个回复

倒序浏览
接口和抽象类的区别


1 接口可以多重继承,但是抽象类不可以;   接口为了实现系统中的松偶合.

2 抽象类与子类,是父子关系; 而接口则不是,是松偶合的关系.

3 抽象类能够定义方法的实现;   接口不能包含方法的实现。

4 最大的区别是由抽象类可以派生出一些成员的实现,但接口却不包含任何成员的实现

5 如果继承一个抽象类,当你类更新时,所有的子类都会跟着更新;而接口是一成不变的,一旦发布了一个接口,永远不要再更改它

6 少量的的接口

7 抽象类可以有实现的过程,而接口没有

8 抽象类可以重载

9 你只能继承一个抽象类,而接口被继承的同时还可以继承其它类和接口

10 接口:

接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。实现接口的任何类都必须提供

接口中所声明的抽象成员的定义。接口可以要求任何实现类必须实现一个或多个其他接口。

对接口有以下限制:

接口可以用任何可访问性来声明,但接口成员必须全都具有公共可访问性。

不能向成员或接口自身附加安全性权限。

接口可以定义类构造函数,但不能定义实例构造函数。

每种语言都必须为需要成员的接口映射一个实现提供规则,因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现



评分

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

查看全部评分

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