多型和繼承

油头男孩發表於2024-10-09

繼承:通常意思就是兒子可以繼承父親的東西,在java裡面也是一樣的,當我們在同一個包內有多個類的成員變數/方法相同時可以使用繼承,只可以在子非靜態方法使用

繼承就是把相同的成員變數/成員方法放在一個類中,然後使用extends這個關鍵字來讓一個類來繼承另一類從而達到程式碼的複用的作用,子類寫在extends的左邊,父類寫在extends的右邊,靜態成員變數/方法不可以使用繼承,因為靜態變數不屬於物件

當子類和父類是同名的成員變數的時候,在子類訪問這個同名的成員變數的時候,子類是優先訪問的自己的,

當子類繼承父類,在父類非同名的的成員變數都是可以訪問的,但是要單獨訪問父類中的同名的成員變數就要使用super這個關鍵字

繼承:對兩個類的共性進行抽取

為什麼繼承:達到程式碼的複用

子類繼承了父類的什麼:繼承了父類的成員變數/成員方法,在子類和父類有同名的成員變數/成員方法優先訪問子類,如果想要訪問父類同名的就要使用super這個關鍵字

子類構造方法:

當父類有構造方法時,必須要先用子類呼叫父類的構造方法才可以使用,子類需要先幫助父類進行初始化之後,子類才能進行初始化,呼叫父類的構造方法需透過super()來完成,且必須放在子類方法的第一條語句

super和this的區別:

1.都是在非靜態成員方法中使用,this是訪問本類的方法和屬性,super是訪問父類的方法和屬性

2.在構造方法中,this()是呼叫本類的構造方法,super()是呼叫父類的構造方法,兩種構造方法不可以同時使用,且都需要放在第一行,構造方法中super()是一定會存在,但this()不寫的話則不存在

父類和子類的列印順序:

當父類和子類同時有靜態程式碼塊,例項程式碼塊,構造方法,會優先執行父類的靜態程式碼塊,然後執行子類的靜態程式碼塊,後就是先執行父類的例項程式碼塊和構造方法,在執行子類的

portected關鍵字是修飾父類的成員變數和成員方法,即便父類和子類不在同一個包時同樣可以達到呼叫的作用,但呼叫時子類要包含父類的包,要在子類的方法運用super關鍵字呼叫,最後在main方法呼叫子類的方法,實現父類的呼叫

final關鍵字是讓你的一個類不被另一個類繼承,讓你的變數變成常量

組合:

將一個類作為另一個類的成員變數來使用,同樣是為了實現程式碼的複用

相關文章