您的位置:首页 > 其它

.NET中接口和抽象类的简单比较

2010-06-08 20:52 211 查看
特征

Interface

Abstract class

多重继承

一个类可以实现多个接口

一个类仅仅可以继承一个抽象类

默认实现

接口不能包含任何的默认实现,仅仅可以保护成员签名

抽象类可以提供完全的,或者是部分的成员实现。

访问修饰符

接口中的成员不能包含任何的访问修饰符,所以的成员都是public

抽象类中的成员可以保护访问修饰符

核心 VS 外延

接口通常用户实现外延的功能。

比如 Human 和 Vehicle 都可以实现 IMovable。

抽象类通常用于实现类的核心功能

同质性

如果要求需要有相同的方法签名,但是不同的具体实现,那么可以选择接口。

如果不同的具体实现需要具有同样的行为,那么抽象类更加合适。

速度

需要更多的时间类查找对应具体类的成员

快速

增加新的成员(版本问题)

如果你在接口中增加一个方法,那么需要在实现该接口的所有类中提供该方法的实现。

如果在抽象类中增加一个方法,你可以给该方法提供一个默认的实现,而且子类不需要任何的修改。

字段和常量

接口中不能定义field和常量

抽象类中可以定义field和常量.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: