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