不同种类的对象之间经常拥有一个确定数量的相同之处。例如,山地车,公路赛和双人自行车都拥有自行车的特点(当前速度,当前踏板速率,当前齿速)。当然,不同的自行车也会有额外的附加的特点以完成不同的功能:双人自行车拥有两个座位和两个车把手;公路赛车有可升降的车把;某些山地赛车有一个附加的链环,给他们一个较低的齿速比。
面向对象的编程允许通过继承其他类来使用常用的状态和行为。本例子中,Bicycle现在成为了MountainBike,RoadBike和TandemBike的父类。在JAVA编程语言中,每个类只允许有一个父类,并且每个父类可以拥有不限的子类:
创建一个子类的语法十分简单。在你类声明的开头,使用关键字extends,接着是类的名字和继承的对象:
class MountainBike extends Bicycle{
//新的变量以及函数的定义区
//山地车相关的内容
}
这使得MountainBike有和Bicycle一样的方法,但其代码作用仅集中于实现其特有的功能上面。这使得你的子类们的代码变得简单易读。然而,你必须小心正确记录每个父类对象的状态和行为,因为父类的代码不会出现在子类中。