.NET中接口和抽象类的简单比较
2010-06-08 20:52
211 查看
特征 | Interface | Abstract class |
多重继承 | 一个类可以实现多个接口 | 一个类仅仅可以继承一个抽象类 |
默认实现 | 接口不能包含任何的默认实现,仅仅可以保护成员签名 | 抽象类可以提供完全的,或者是部分的成员实现。 |
访问修饰符 | 接口中的成员不能包含任何的访问修饰符,所以的成员都是public | 抽象类中的成员可以保护访问修饰符 |
核心 VS 外延 | 接口通常用户实现外延的功能。 比如 Human 和 Vehicle 都可以实现 IMovable。 | 抽象类通常用于实现类的核心功能 |
同质性 | 如果要求需要有相同的方法签名,但是不同的具体实现,那么可以选择接口。 | 如果不同的具体实现需要具有同样的行为,那么抽象类更加合适。 |
速度 | 需要更多的时间类查找对应具体类的成员 | 快速 |
增加新的成员(版本问题) | 如果你在接口中增加一个方法,那么需要在实现该接口的所有类中提供该方法的实现。 | 如果在抽象类中增加一个方法,你可以给该方法提供一个默认的实现,而且子类不需要任何的修改。 |
字段和常量 | 接口中不能定义field和常量 | 抽象类中可以定义field和常量. |
相关文章推荐
- .NET对接口和抽象类的核心比较(转)
- .NET对接口和抽象类的核心比较
- final修饰符、抽象类、接口、多态、内部类的简单小结
- .NET之对接口和抽象类
- 什么是.net的接口和抽象类
- Java学习之抽象类和接口区别比较
- 内部类,接口,抽象类 比较(11)
- .Net常用集合简单比较
- ASP.NET教程:抽象类和接口的比较
- Java中接口和抽象类的比较
- C++虚函数与JAVA中抽象函数比较 接口与抽象类比较
- (转)java中抽象类与接口的比较
- Java 进阶 之 抽象类与接口 比较(二)
- 抽象类和接口区别比较
- Java中的抽象类与接口的简单介绍举例
- .NET之对接口和抽象类(一)
- 第一节:从面向对象思想(oo)开发、接口、抽象类以及二者比较
- ASP.NET抽象类和接口的比较
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- .net中的抽象类与接口