C# 接口和抽象类的区别和使用场合(知识要点归纳总结)
2017-01-20 13:42
549 查看
C# 接口和抽象类的区别和使用场合(知识要点归纳总结)
接口和抽象类的异同
相同点
二者都不能实例化;二者都通过继承实现中的重写(override)实现抽象方法;
二者都是OOP的基础,实现各种设计模式。
不同点
接口支持多实现,而抽象类和具体类一样只能单一继承;接口只能定义抽象的方法,而抽象类除此以外可以定义具体方法;
结构体能实现接口而不能继承抽象类;
使用场合
如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单易行的方法来控制组件版本。通过更新基类,所有继承类都随更改自动更新。另一方面,接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口。如果创建的功能将在大范围的全异对象间使用,则使用接口。抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。
如果要设计小而简练的功能块,则使用接口。如果要设计大的功能单元,则使用抽象类。
如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。抽象类允许部分实现类,而接口不包含任何成员的实现。
备注
提炼:1. 抽象类用在同类不同种的事物的抽象,把这些事物的通用方法写到抽象类中,进行全局的统筹;
2. 接口用在给不同类的事物提供通用的功能。
相关文章推荐
- C# 等待进度窗体实现
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
- C# 抽象类(知识要点归纳总结)
- C#设计模式(10)——组合模式
- [.NET] C# 知识回顾
- C# datagridview显示行号
- 19.C#:支持标准查询运算符的集合接口,Linq查询语句
- des加密解密源码 C# key值问题分析
- C#生成MD5的函数代码
- C# 用file 上传文件大小时判断文件大小 file onchange 事件为什么只执行一次解决方案
- C#添加Windows服务 定时任务
- C# 添加Windows服务,定时任务
- C#打开文件 ,文件夹
- C# ArcEngine 实现点击要素高亮并弹出其属性
- 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标
- c#中的结构
- C# 位运算符
- C# 斐波那契数列
- C# 斐波那契数列
- C# 语言—基础知识