當我們準備要寫一個類別的時候,發現某個類別有我們所需要的成員變數和方法,如果我們想重複使用這個類別中的成員變數和方法,也就是在所寫的類別中不用宣告成員變數和定義方法,就相當於有了這個成員變數和方法,那麼我們可以將編寫的類別定義為這個類別的子類別。
而繼承就是一種由已有的類創建新類的機制,利用繼承,我們可以先定義一個共有屬性的一般類,根據該一般類再定義具有特殊屬性的子類,子類繼承一般類的屬性和行為,並根據需要增加它自己的新的屬性和行為。由繼承而得到的類別稱為子類,被繼承的類別稱為父類別(超類別)。
注意:
Java不支援多重繼承,即子類別只能有一個父類,人們習慣地稱子類別與父類別的關係是「is-a」關係。
在類別的聲明中,透過使用關鍵字extends來定義一個類別的子類,一般格式為:
class子類別名稱extends父類別名稱{…}
例如:
classStudentextendsPeople{…}
把Student類別定義為People類別的子類,People類別是Student類別的父類別(超類別)。
類的樹形結構:
如果C是B的子類,B又是A的子類,習慣上稱C是A的子孫類。 Java的類別依繼承關係形成樹狀結構(將類別看做樹上的結點),在這個樹狀結構中,根結點是Object類別(Object是java.lang套件中的類別),即Object是所有類別的祖先類別。任何類別都是Object類別的子孫類,每個類別(除了Object類別)有且僅有一個父類,一個類別可以有多個或零個子類別。
注意:
如果一個類別(除了Object類別)的宣告中沒有使用extends關鍵字,這個類別被系統預設為Object的子類別。例如:類別宣告「class A」與「class A extends Object」是等同的。