总结:C#抽象类与接口区别

接口与抽象类差异区别

简单理解:

抽象类:是个不完整的类,可以包含定义和实现,需要提供子类重写实现。

接口:是为了满足外部调用而定义的一种规范约定。只有定义,没有实现

接口抽象类
在接口中仅能定义成员,但不能有具体的实现 抽象类除了抽象成员以外,其他成员允许有具体的实现。
在接口中不能声明字段,并且不能声明任何私有成员,成员不能包含任何修饰符 在抽象类中能声明任意成员,并能使用任何修饰符来修饰
接口能使用类或者结构体来继承。 抽象类仅能使用类继承。
在使用类来实现接口时,必须隐式或显式地实现接口中的所有成员,否则需要将实现类定义为抽象类,并将接口中未实现的成员以抽象的方式实现。 在使用类来继承抽象 类时允许实现全部或部分成员,但仅实现其中的部分成员,其实现类必须也定义为抽象类。
一个接口允许继承多个接口。 一个类只能有一个父类。
用interface定义 用abstract定义
实现接口的类必须实现所有成员 非抽象派生类必须实现抽象方法
直接实现 需要用Oerride实现抽象方法

相似点

不能被实例化
包含未实现的方法
派生类必须实现未实现的方法
posted @ 2021-03-02 23:31  LiuzzBK  阅读(92)  评论(0编辑  收藏  举报