本帖最后由 许庭洲 于 2014-4-3 20:09 编辑
相同点:
1.都不能被直接实例化,都可以通过继承实现其抽象方法;
2.都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:
1.接口支持多继承;抽象类不能实现多继承。
2.接口只能定义抽象规则;抽象类既可以定义规则,还能提供已实现的成员。
3.接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
4.接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持。
5. 接口只包含方法(Method), 属性(Property),索引器(Index),事件(Event)的签名,但不能定义字段和包含实现的方法;
6. 抽象类可以定义字段,属性,包含有实现的方法。
7. 接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用与引用类型。
|