7.3 超类与子类*

当我们用类去描述现实世界的对象时,有时会发现某些类之间是“一般与特殊”的关系。

例如,“人”与“学生”之间就是一般与特殊的关系,而“学生”与“研究生”也是一般与特 殊的关系。当然,“人”的特殊例子还包括“教师”,“学生”的特殊例子还包括“旁听生”。 总之,通过一般与特殊的关系,可以将所有类组织成为一个层次结构,称为类层次。如图 7.11 所示。

图 7.11 类层次

为了描述这种一般与特殊的关系,面向对象语言中提供了相应的类定义方式。具有一般性的类称为超类(superclass),具有特殊性的类称为子类(subclass)①。例如在图 7.11 中, “人”是“学生”的超类,“学生”是“人”的子类;“人”也是“教师”的超类,“教师”是 “人”的子类;“学生”又是“研究生”的超类,“研究生”是“学生”的子类;等等。