黑马程序员技术交流社区

标题: 谁能详细分享下自己对C#接口与抽象类的区别的理解? [打印本页]

作者: 王起    时间: 2013-3-15 12:49
标题: 谁能详细分享下自己对C#接口与抽象类的区别的理解?
本帖最后由 王起 于 2013-3-16 14:10 编辑

如题,谁能详细分享下自己对C#接口与抽象类的区别的理解?
作者: jy郑娟    时间: 2013-3-15 14:07
接口和抽象类的区别


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

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

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

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

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

6 少量的的接口

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

8 抽象类可以重载

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

10 接口:

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

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

对接口有以下限制:

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

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

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

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








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