黑马程序员技术交流社区
标题:
谁能详细分享下自己对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