VB分布式应用程序开发随记---继承的两个方面
来源:互联网 发布:javbus域名更新2017 编辑:程序博客网 时间:2024/05/19 12:41
继承是一种以实体间的“是”关系为基础的面向对象的概念。到目前为止,我已使用术语“实现继承”来代替使用更通用的术语“继承”,这是因为使用子类扩展超类是唯一一种平衡“是”关系的方法。当类实现接口时,它还将利用“是”关系。例如,如果类CBeagle实现接口IDog,那么说猎犬“是”小狗是正确的。您可以在任意需要与IDog兼容的对象的情况下使用CBeagle对象。
基于接口的编程方式是以继承的第二种形式“接口继承”为基础的。一般来说,继承不需要重用方法实现。相反,对于继承唯一真正的要求是,子类实例必须与所扩展的基类型兼容。所扩展的基类型可以是类,也可以是用户定义的接口。无论是哪种情况,您都可以使用基类型引用来与多种不同类型的对象进行通信。这使得两种形式的继承都可以获得多态。
虽然实现继承和接口继承都提供了多态,但是当要使用封装时,它们却有很大的不同。实现继承是以白盒重用为基础的。它使子类可以知道它所扩展的超类的细节。这使得子类可以隐含地重用超类的方法实现和数据属性。在重用状态和行为方面,实现继承的功能要比接口继承的功能强大许多。但是,这种重用是要付出代价的。白盒重用中的封装损失限制了基于实现继承的应用程序的可伸缩性。
正如术语“黑盒重用”所体现的,接口继承强化了封装的概念。在类中严格地遵守实现的封装使得可以进行更具伸缩性的应用程序设计。基于接口的编程方式解决了很多与白盒重用有关的问题。但是,要评价这种编程方式,您必须接受“获得的利益要大于付出的代价”的思想。这对于很多程序员是需要进行一些思想斗争的。
当类实现接口时,它就承担了提供一组方法实现的义务。子类的作者必须在决定决定实现接口时编写一些额外的代码。当与实现继承进行比较时,它看上去似乎需要进行更多的工作。当从类继承时,大多数工作都已经完成,但是,当从接口继承时,工作却刚刚开始。乍一看,实现继承看上去更像是奶酪三明治,而接口继承看上去更像是一碗蒸制的椰菜。您必须超越拥有奶酪三明治就认为达到较高级别的接口的思想。接口继承与实现继承相比,主要的优点在于,它不会以牺牲应用程序的扩展性来获得紧密的联系。
- VB分布式应用程序开发随记---继承的两个方面
- VB分布式应用程序开发随记---接口继承
- VB分布式应用程序开发随记---使用实现继承的问题
- VB分布式应用程序开发随记---绑定技术概述
- 通货膨胀的两个方面
- 人活着的两个方面
- PB环境下分布式应用程序的开发
- dreamweaver随记----css的嵌套和继承
- vb qt 开发应用程序小结
- 使用VB.NET开发纯.NET的应用程序
- 使用VB.NET开发纯.NET的应用程序
- 使用VB.NET开发纯.NET的应用程序
- 如何使用VS2005的VB.net开发WinCE应用程序
- VB应用程序的打包
- 酷!用VB或VB.NET开发S60,PPC,PALM等各种智能手机/PDA的应用程序
- HashMap与HashTable的不同点有两个方面
- 软件测试的两个方面:白盒、黑盒
- 企业最关注应届毕业生的两个方面
- 发现了一个很好的搜索引擎
- 新年第一帖-我的音乐盒(一)
- JDBC数据库驱动下载网址大全
- 新写的聊天室程序报错了
- Eclipse Forms: 为胖客户端做的漂亮UI(翻译,第三部分)
- VB分布式应用程序开发随记---继承的两个方面
- 最后的饕餮
- Sybase基础知识
- 电盲厨房战记
- 好好学习,天天向上
- 开始学习使用ajax.dll
- 书痴者文必工,艺痴者技必良
- 2006IT业应届薪资(长三角地区)
- 中国农历算法java实现(转自Herong Yang)