1. abstract class和interface都不能被直接实例化,都可以通过继承实现其抽象方法;
2. interface支持多继承;abstract class不能实现多继承;
3. interface只能定义行为;abstract class既可以定义行为,还能提供实现;
4. interface可以用于支持回调(CallBack);abstract class不能实现回调(CallBack),因为继承不支持。
5. interface只包含方法(Method),属性(Property),索引器(Index),事件(Event)的签名,但不能定义字段和包含实现的方法;
6. abstract class可以定义字段,属性,包含有实现的方法;
7. interface可以作用于值类型(Struct)和引用类型(Class);
8. abstract class只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。
|