1.類的繼承:
每個類只能有一個直接父類,每個子類繼承父類的成員變量和成員方法,同時可以修改父類的成員變量或重寫父類的方法,還可以添加新成員變量或成員方法
2.extends關(guān)鍵字:
在定義類時若使用extends關(guān)鍵字指出新定義類的父類,就是在兩個類之間建立了繼承關(guān)系。(先調(diào)用父類再調(diào)用子類)通俗地來講,extends相當于財產(chǎn)轉(zhuǎn)移合同,只有簽訂了合同,子類才能繼承父類的財產(chǎn),也就是成員變量和成員方法,同時子類可以對繼承的財產(chǎn)進行修改或重寫,也可以獲得更多的財產(chǎn)。
格式:
class Students(子類) extends Person(父類){
}
如果沒有extends關(guān)鍵字,則該類默認為java.lang.Object類的子類。
3.super():
用來調(diào)用父類中某個特定的構(gòu)造方法。
super(參數(shù)1,參數(shù)2,...,參數(shù)n);
子類利用super()方法將參數(shù)傳遞到父類的構(gòu)造方法中,當此子類被調(diào)用時,對應父類也會被調(diào)用
注:調(diào)用父類構(gòu)造方法的super()語句必須寫在子類構(gòu)造方法的第一行,否則將出錯
如果一個類中沒有寫任何的構(gòu)造方法,JVM 會生成一個默認的無參構(gòu)造方法。在繼承關(guān)系中,由于在子類的構(gòu)造方法中,第一條語句默認為調(diào)用父類的無參構(gòu)造方法(即默認為 super(),一般這行代碼省略了)。所以當在父類中定義了有參構(gòu)造方法,但是沒有定義無參構(gòu)造方法時,編譯器會強制要求我們定義一個相同參數(shù)類型的構(gòu)造方法。