不同种类的对象之间,通常有一定数量的共同点。例如,山地自行车,公路自行车和双人自行车都具有自行车的特征(当前速度,当前踏板节奏,当前档位)。然而,每个自行车还定义了使其与众不同的其他功能:双人自行车有两个座位和两组车把;公路自行车有下降的车把;一些山地自行车有一个附加的链环,使它们的齿轮比更低。
面向对象编程允许类从其他类继承(inherit)常用的状态和行为。在这个例子中,Bicycle
现在变成了MountainBike
,RoadBike
和TandemBike
的超类(superclass)。在Java编程语言中,每个类都可以具有一个直接超类,并且每个超类都可能有无限数量的子类(subclasses):
自行车类的层次结构
创建子类的语法很简单。在类声明的开头,使用extends(扩展)
关键字,后跟要继承的类的名称:
class MountainBike extends Bicycle {
// new fields and methods defining
// a mountain bike would go here
}
这给MountainBike
提供了与Bicycle
相同的所有字段和方法,但允许其代码仅专注于使其独特的功能。这使子类的代码易于阅读。但是,您必须注意正确记录每个超类定义的状态和行为,因为该代码不会出现在每个子类的源文件中。