不同類型的對象彼此之間經常會有一些相似的地方。例如:Mountain bikes, road bikes, and tandem bikes, 全都分享了bicycles 的特點(current speed, current pedal cadence, current gear)。但是他們也各自定義了其他的讓他們互相不一樣的特性: tandem bicycles有倆個座位和倆套車把, road bikes 有賽車車把,一些mountain bikes有額外的鏈圈,藉此來獲得較低的齒輪比。
面向對象編程允許類去繼承其他類中常用的狀態和行爲。例子中,Bicycle變成了MountainBike
, RoadBike和
TandemBike這三個類的超類。在java編程語言中,每個類都允許有一個直接的父類,但每個父類可以擁有不限量的子類
自行車類的層次
創建一個子類的語法非常簡單。在類聲明的開頭,使用extends關鍵字,緊接着就是想要繼承的類名:
class MountainBike extends Bicycle { // new fields and methods defining // a mountain bike would go here }這樣就可以讓MountainBike擁有Bicycle的所有屬性和方法,還能讓它的代碼更專注於讓它顯得獨一無二的特性。這會讓你的子類的代碼更用於閱讀。但是你必須小心地正確記錄每個父類定義的屬性和方法,因爲這些代碼不會在子類中再次出現。