不同种类的对象之间,通常有一定数量的共同点。例如,山地自行车,公路自行车和双人自行车都具有自行车的特征(当前速度,当前踏板节奏,当前档位)。然而,每个自行车还定义了使其与众不同的其他功能:双人自行车有两个座位和两组车把;公路自行车有下降的车把;一些山地自行车有一个附加的链环,使它们的齿轮比更低。
    面向对象编程允许类从其他类继承(inherit常用的状态和行为。在这个例子中,Bicycle现在变成了MountainBikeRoadBikeTandemBike超类superclass。在Java编程语言中,每个类都可以具有一个直接超类,并且每个超类都可能有无限数量的子类(subclasses
    什么是继承? - 图1
    自行车类的层次结构
    创建子类的语法很简单。在类声明的开头,使用extends(扩展)关键字,后跟要继承的类的名称:

    1. class MountainBike extends Bicycle {
    2. // new fields and methods defining
    3. // a mountain bike would go here
    4. }

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