什么是继承?

不同种类的对象通常彼此之间有一定数量的共同点。例如,山地车,公路车和 Double 人自行车都具有自行车的 Feature(当前速度,当前踏板节奏,当前档位)。然而,每个自行车还定义了使其与众不同的其他功能:Double 人自行车有两个座位和两组车把;公路自行车有下降的车把;一些山地自行车带有附加的链环,从而降低了齿轮比。

面向对象的编程允许类从其他类继承常用的状态和行为。在此示例中,Bicycle现在成为MountainBikeRoadBikeTandemBike的超类。在 Java 编程语言中,每个类都可以具有一个直接超类,并且每个超类都具有无限数量的子类的潜力:

层次结构中的类图。

自行车类的层次结构。

创建子类的语法很简单。在类声明的开头,使用extends关键字,后跟要从其继承的类的名称:

class MountainBike extends Bicycle {

    // new fields and methods defining 
    // a mountain bike would go here

}

这为MountainBike提供了与Bicycle相同的字段和方法,但允许其代码专门关注使其独特的功能。这使子类的代码易于阅读。但是,您必须注意正确记录每个超类定义的状态和行为,因为该代码不会出现在每个子类的源文件中。