第⑦章继承与派生 H 声明中的“基类名”(如 Basel、Base2)是已有类 的名称,“派生类名”是继承原有类的特性而生成的 新类的名称(如 MultiDerived) 多继承和单继承时,基类和派生类之间的关系可 以用图7-2描述。单继承可以看作是多继承的一个最简 单的特例,多继承可以看作是多个单继承的组合,它 们之间的很多特性是相同的
第7章 继承与派生 声明中的“基类名”(如Basel、Base2)是已有类 的名称, “派生类名”是继承原有类的特性而生成的 新类的名称(如MultiDerived)。 多继承和单继承时,基类和派生类之间的关系可 以用图7-2描述。单继承可以看作是多继承的一个最简 单的特例,多继承可以看作是多个单继承的组合,它 们之间的很多特性是相同的
第⑦章继承与派生 H 基类1 基类2 基类n C基类 派生类1 派生类2 派生类个 派生类2 (a)多继承 (b)单继承 图7-2多继承和单继承 (a)多继承(b)单继承
第7章 继承与派生 图7-2 多继承和单继承 (a)多继承(b)单继承
第⑦章继承与派生 H 722类族 在派生过程中,派生出来的新类也同样可以作为 基类再继续派生新的类。此外,一个基类可以同时派 生出多个派生类。也就是说,一个类从父类继承来的 特征也可以被其它新的类所继承,一个父类的特征, 可以同时被多个子类继承。这样就形成了一个相互关 联的类的家族,称为类族。在类族中,直接参与派生 出某类的基类称为直接基类;基类的基类甚至更高层 的基类称为间接基类
第7章 继承与派生 7.2.2 类族 在派生过程中,派生出来的新类也同样可以作为 基类再继续派生新的类。此外,一个基类可以同时派 生出多个派生类。也就是说,一个类从父类继承来的 特征也可以被其它新的类所继承,一个父类的特征, 可以同时被多个子类继承。这样就形成了一个相互关 联的类的家族,称为类族。在类族中,直接参与派生 出某类的基类称为直接基类;基类的基类甚至更高层 的基类称为间接基类
第⑦章继承与派生 H 图7-3所示为一个单继承的多层类族,其中A类派 生出B类,B类又派生出E类,则B类是E类的直接基类, A类是B类的直接基类,而A类可以称为E类的间接基类。 在使用多继承时,对于具有相同名字成员的访问要注 意二义性。这部分内容将在本章75节中详细介绍
第7章 继承与派生 图7-3所示为一个单继承的多层类族,其中A类派 生出B类,B类又派生出E类,则B类是E类的直接基类, A类是B类的直接基类,而A类可以称为E类的间接基类。 在使用多继承时,对于具有相同名字成员的访问要注 意二义性。这部分内容将在本章7.5节中详细介绍
第⑦章继承与派生 H A类 B类 C类 D类 E类 图7-3单继承类族示意图 BACK
第7章 继承与派生 图7-3 单继承类族示意图