2022年抽象类和借口的区别 .pdf
《2022年抽象类和借口的区别 .pdf》由会员分享,可在线阅读,更多相关《2022年抽象类和借口的区别 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VC#-抽象类和借口的区别(2)2008-01-04 22:24 ? 面向对象思想:多态? 接口? 抽象类1. 引言在我之前的一篇 post 抽象类和接口的谁是谁非中,和同事管伟的讨论,得到很多朋友的关注, 因为是不成体系的论道, 所以给大家了解造成不便, 同时关于这个主题的系统性理论, 我认为也有必要做以总结, 因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。2. 概念引入什么是接口?接口是包含一组虚方法的抽象类型, 其中每一种方法都有其名称、 参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。
2、但是注意: C#中不能包含任何静态成员?。 一个类可以实现多个接口, 当一个类继承某个接口时, 它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。定义方法为:什么是抽象类?抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法, 也可以提供非抽象方法。 抽象类不能实例化, 必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密封。 如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。 另外,实现抽象方法由overriding方法来实现。定义方法为:3. 相同点和不同点名师资料总结 - - -精品资料欢迎下载 - - - -
3、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 3.1 相同点都不能被直接实例化,都可以通过继承实现其抽象方法。都是面向抽象编程的技术基础,实现了诸多的设计模式。3.2 不同点接口支持多继承;抽象类不能实现多继承。接口只能定义抽象规则; 抽象类既可以定义规则, 还可能提供已实现的成员。接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。接口只包含方法、 属性、索引器、事件的签名, 但不能定义字段和包含实现的方法;抽象类可以
4、定义字段、属性、包含有实现的方法。接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。通过相同与不同的比较, 我们只能说接口和抽象类, 各有所长, 但无优略。 在实际的编程实践中, 我们要视具体情况来酌情量才,但是以下的经验和积累, 或许能给大家一些启示, 除了我的一些积累之外, 很多都来源于经典, 我相信经得起考验。所以在规则与场合中, 我们学习这些经典, 最重要的是学以致用, 当然我将以一家之言博大家之笑,看官请继续。3.3 规则与场合1. 请记住,面向对象思想的一个最重要的原则就是:面向接口编程 。2. 借助接口和抽象类, 23 个设
5、计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程。3. 抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。4. 接口着重于 CAN-DO 关系类型,而抽象类则偏重于IS-A 式的关系;5. 接口多定义对象的行为;抽象类多定义对象的属性;6. 接口定义可以使用public 、protected 、internal 和 private修饰符,但是几乎所有的接口都定义为public ,原因就不必多说了。7. “接口不变”, 是应该考虑的重要因素。 所以,在由接口增加扩展时, 应该增加新的接口,而不能更改现有接口。8. 尽量将接口设计成功能单一的功能块,以.
6、NET Framework 为例,IDisposable 、IDisposable 、IComparable 、IEquatable 、IEnumerable等都只包含一个公共方法。9. 接口名称前面的大写字母“I ”是一个约定,正如字段名以下划线开头一样,请坚持这些原则。10. 在接口中,所有的方法都默认为public 。11. 如果预计会出现版本问题, 可以创建“抽象类”。 例如,创建了狗(Dog )、鸡(Chicken)和鸭( Duck),那么应该考虑抽象出动物(Animal)来应对以后可能出现风马牛的事情。 而向接口中添加新成员则会强制要求修改名师资料总结 - - -精品资料欢迎下载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年抽象类和借口的区别 2022 抽象 借口 区别
限制150内