抽象类与接口的区别

来源:互联网 发布:协同oa办公软件 编辑:程序博客网 时间:2024/05/17 00:10

c#中可以多继承接口,却只能继承自一个抽象类;

抽象类中的方法可以包含一些实现,但接口却只能定义方法的一种规范,不能包含实现;

继承类必须实现借口中所有的方法,而不一定要实现抽象类中的所有方法;

抽象类可以继承自抽象类 ,但接口不能继承自接口;

派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);另外,接口有如下特性:
接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。

二者均不能实例化。关于二者的使用情况的理解,下面这段话是最好的解释:

抽象类用于部分实现一个类,再由用户按需求对其进行不同的扩展和完善;接口只是定义一个行为的规范或规定。
抽象类在组件的所有实现间提供通用的已实现功能;接口创建在大范围全异对象间使用的功能。
抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。
抽象类主要用于设计大的功能单元;而接口用于设计小而简练的功能块

原创粉丝点击