引言
再java中你能創造出很多的類,但如果這些類中的成員再另一個類中也要使用,那么就要用到繼承來實現指定類中成員的使用了
那么也就可以寫出這樣的代碼
再類Cat中使用了類Animal的成員,這里我們稱Cat叫子類,Animal叫父類
概念
通過對不同類中的相似的成員的抽取,實現代碼的復用,還能實現多態(敬請期待)
語法
當然這樣就要提到倆個關鍵字了 extends? ? super
extends?
用來表明繼承的父子類關系,是由子類 extends 父類
?不過要注意的是一個子類只能繼承一個父類,而一個父類可以被多給子類繼承
super
對父類成員訪問
特別注意,若父類有自己寫的有構造方法,且需要傳入參數,那么子類必須用super()調用父類構造方法,且要放再第一行,有父才能有子,所以再初始化過程中是要先初始化父類的成員,再初始化子類的成員?
若父類和子類有相同的變量,子啊調用時默認調用子類的,可以理解再尋找成員變量時是先再子類中尋找,若子類中沒有,那么就在父類中尋找
若要特別調用父類的成員,用 super. 訪問就行
super and this
super()和this()是不能同時同時存在的,因為你子類的構造方法必定會要調用父類的構造方法,而你有調用了子類的另一個構造方法,這樣就必定會形成一個循環
再談代碼塊初始化順序
靜態代碼塊是在類加載時執行,所以最先執行
之后的時實例代碼塊,類方法是在對象的創建后才會執行
且父類的執行順序再子類之上
所以是
父類靜態 》子類靜態 》 父類(實例 》(類方法)》?子類(實例 》類方法)??
protected關鍵字
既然說到了父子類關系,那么說下最后一個權限關鍵字,protected
protected的權限是
?
對與不同包的同子類用代碼來表示
且在不同包中只有子類能調用
對于成員權限大小的決定,能小就小,為了代碼安全性
final關鍵字
如果不想這個類被別人繼承,那么就用final去修飾這個類
?下篇 多態