6.1.3 继承

继承允许我们使用子类在类之间创建层次关系。子类将从它的超类继承属性和操作。例如,汽车和自行车具有一些共同特性。我们可以用一个名为交通工具的类包含所有交通工具都具有的“颜色”属性和“移动”行为,然后让汽车类和自行车类继承这个交通工具类。

作为术语,你将看到子类和派生类的交替使用。同样地,你还将看到超类和父类的交替使用。

通过继承,我们可以在已有类的基础上创建新类。根据实际需要,可以从一个简单的基类开始,派生出更复杂、更专门的类。这样,可以使代码具有更好的可重用性。这就是面向对象方法的一个重要优点。

如果操作可以在一个超类中编写一遍而不需要在每个子类中都编写,那么就可以利用继承省去大量重复的编码工作。这也使得我们可以对现实世界的各种关系建立更精确的模型。如果类之间的相互关系可以用“是”来描述的话,就有点类似于我们这里的“继承”。例如,句子“汽车是交通工具”有意义,而句子“交通工具是汽车”则没有意义(因为不是所有交通工具都是汽车)。因此,汽车可以继承交通工具。