接口与抽象类区别(个人总结):
语法结构:
1 类型可以继承多个接口,但是只能继承一个抽象类,即不支持多重继承。
2 接口可以用于值类型和引用类型,例如struct和class,而抽象类不能用于值类型,只能用于引用类型。
3 抽象类定义可以包括构造函数,字段数据,非抽象成员(具体实现)等, 而接口只能包括抽象成员。
功能:
1 和基于类的继承不同,派生接口不会继承真正的实现而只是通过额外的抽象成员扩展了其自身的定义。
1 只能派生类型才支持抽象父类定义的成员,而接口可以被任何层次结构,任何命名空间或任何程序集(由任何.NET编程语言写的)中的
任何类型来实现,接口具有较高的多态性。
2 传统抽象基类的另外一个限制就是每一个派生类型必须处理这一组抽象成员并且提供实现。而有些派生类型没有部分抽象成员的功能。