正在加载图片...
建立继承结构的好处 易编程、易理解代码短,结构清晰 易修改:共同部分只要在一处修改即可 师 退休者 易增加新类:只须描述不同部分。 (6)多继承 如果一个类需要用到多个既存类的特征,可以从 多个类中继承,称为多继承。例如退休教师是继承退 休者和教师这两个类的某些特征或行为而得到的一个 新类。 图66多继承 (7)多态性和动态绑定 对象互相通信,即一个对象发消息给另一个对象,执行某些行为或又发消息给另外的对 象,从而执行系统的功能。 发送消息的对象可能不知道另一个对象的类型是什么。如在C程序中使用命令 ClearInt( 时要严格区分该命令适合一个整数,还是一个整数数组。但在C++情形, ClearIng()对两者 都适用,它自己判断对象是哪一个 这就是多态性。它意味着一个操作在不同类中可以有不同的实现方式。如清零操作 ClearInt()针对消息对象是 Int array还是int,其实现是不同的。在一个面向对象的多态性 语言中,可能代替一个特定类型的类型的集合就是它的子类集合 例如,图67给出了4个类的继承层次。使用这个继承结构,发送给多边形类的所有消 息,它的所有子类都能够响应。又例如,想要在屏幕上画一系列多边形,多态性允许一个表 的元素可以属于一组指定的类型而不仅仅是 个类型,可以认为这是一个类族。通过遍 力形 历这个表,发送给各个表元素以draw消息 画出所有的多边形。 动态绑定把函数调用与目标代码块的连 三角形 四边形 接延迟到运行时进行。这样,只有发送消息 时才与接收消息实例的一个操作绑定。它与 多态性可以使我们建立的系统更灵活,易于 扩充。做为动态绑定的例子,考虑在多边形 类中的方法 contains?( apoint)。这个操作可以 图674个类的继承层次 在类层次的各层重新实现,以有效利用各个 子类的特殊的特征。例如,假定一个矩形有某些边与屏幕的边平行,这时,检查一个点是否 包含在矩形内,比检查一个点是否在一个一般的四边形内的效率要高一些 2.面向对象软件的开发过程 面向对象范型不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件 系统与现实世界的关系以及如何进行系统构造的软件方法学。用面向对象开发方法构造的软 件具有以下特点 面向对象的技术建立的模型与客观世界一致,因而便于理解 适应变化的需要,修改局限在模块中; 可复用性 (1)应用生存期 图68给出应用生存期模型。在图中各个阶段的顺序是线性的,但实际上开发过程不是 线性的。还没有办法用图来逼真地反映在面向对象开发过程中各个阶段之间的复杂交互。有5 图 6.7 4 个类的继承层次 图 6.6 多继承 建立继承结构的好处: ▪ 易编程、易理解 代码短, 结构清晰; ▪ 易修改:共同部分只要在一处修改即可; ▪ 易增加新类:只须描述不同部分。 (6) 多继承 如果一个类需要用到多个既存类的特征,可以从 多个类中继承,称为多继承。例如退休教师是继承退 休者和教师这两个类的某些特征或行为而得到的一个 新类。 (7) 多态性和动态绑定 对象互相通信,即一个对象发消息给另一个对象,执行某些行为或又发消息给另外的对 象,从而执行系统的功能。 发送消息的对象可能不知道另一个对象的类型是什么。如在 C 程序中使用命令 ClearInt ( ) 时要严格区分该命令适合一个整数,还是一个整数数组。但在 C++情形,ClearInt ( ) 对两者 都适用,它自己判断对象是哪一个。 这就是多态性。它意味着一个操作在不同类中可以有不同的实现方式。如清零操作 ClearInt ( ) 针对消息对象是 int array 还是 int,其实现是不同的。在一个面向对象的多态性 语言中,可能代替一个特定类型的类型的集合就是它的子类集合。 例如,图 6.7 给出了 4 个类的继承层次。使用这个继承结构,发送给多边形类的所有消 息,它的所有子类都能够响应。又例如,想要在屏幕上画一系列多边形,多态性允许一个表 的元素可以属于一组指定的类型而不仅仅是 一个类型,可以认为这是一个类族。通过遍 历这个表,发送给各个表元素以 draw 消息, 画出所有的多边形。 动态绑定把函数调用与目标代码块的连 接延迟到运行时进行。这样,只有发送消息 时才与接收消息实例的一个操作绑定。它与 多态性可以使我们建立的系统更灵活,易于 扩充。做为动态绑定的例子,考虑在多边形 类中的方法 contains? (aPoint)。这个操作可以 在类层次的各层重新实现,以有效利用各个 子类的特殊的特征。例如,假定一个矩形有某些边与屏幕的边平行,这时,检查一个点是否 包含在矩形内,比检查一个点是否在一个一般的四边形内的效率要高一些。 2. 面向对象软件的开发过程 面向对象范型不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件 系统与现实世界的关系以及如何进行系统构造的软件方法学。用面向对象开发方法构造的软 件具有以下特点: ▪ 面向对象的技术建立的模型与客观世界一致,因而便于理解; ▪ 适应变化的需要,修改局限在模块中; ▪ 可复用性。 (1) 应用生存期 图 6.8 给出应用生存期模型。在图中各个阶段的顺序是线性的,但实际上开发过程不是 线性的。还没有办法用图来逼真地反映在面向对象开发过程中各个阶段之间的复杂交互。有 教师 退休者 退休教师 多边形 四边形 矩形 三角形
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有