第十三章多重继承与多重替换MultipleInheritanceandMultiple.pptVIP

  • 2
  • 0
  • 约4.59千字
  • 约 23页
  • 2017-11-27 发布于江苏
  • 举报

第十三章多重继承与多重替换MultipleInheritanceandMultiple.ppt

第十三章多重继承与多重替换MultipleInheritanceandMultiple

第十三章 多重继承和多重替换Multiple Inheritance and Multiple Substitutability 多重继承—当一个子类从一个以上的超类型继承属性和方法 多从替代—不同类型的对象之间的相互替代 多重继承 现实世界的复杂性,由于一个实体的多哥角色性,在进行泛化抽象时,常常需要从不同角度进行。反之,一个实体可以从不同继承特征,构成多重继承。 如图 OT3继承了OT1和OT2的全部特征(属性,操作) OT3是OT1和OT2的一个类型扩展 OT3的实例既可以替换OT1实例,也可以替换OT2实例 多重继承的有向无环图 DAG 多重继承构造了一个有向无环图,其总根为ANY 类型的层次结构是连通的,没有孤立子,从根可以到达每一个类型结点,反子亦然 类型的层次结构是无回路的,即多重继承不支持递归 若只有单重继承,则DAG转化为树 GOM的多重继承是全继承概念 多重继承带来的问题 (一)操作OP的歧义--操作冲突 冲突原因: 一个op名字分别在不同父类(祖先)OT1, OT2中说明,操作体不同,则造成子类OT3在全继承情况下, op操作名的二义性。 若op在共同的祖先,如OT0中被定义,但在不同的父类型如OT1, OT2中被分别重定义,从而造成在OT3中的二义性。 操作二义性举例 一个操作bonus(奖励)分别在Student和Employee有定义,当一个奖励作用在

文档评论(0)

1亿VIP精品文档

相关文档