繼承與多型

Ray的bug發表於2020-10-21

一,繼承

1.定義
繼承是在一個類的基礎上,制定出一個新的類,這個新的類不僅可以繼承原來類的屬性和方法,也可以增加新的屬性和方法。原來的類稱為父類,新的類稱為子類。

2.繼承關係
Java不支援多重繼承,一個子類只能繼承一個父類,即 extends 關鍵字後只允許出現一個類名。

繼承具有傳遞性,支援多層繼承。

子類在建立一個新的物件時,執行順序是先找到最根的父親,接著開始執行根父類的構造方法,然後依次向下執行派生出來的子類的構造方法,直到執行完所有子類構造方法為止。

子類可以繼承父類所有非私有的成員方法(public,protected),而無法繼承父類私有的成員方法(private)。

3.重寫
子類可以定義與父類屬性同名的屬性,字類屬性將覆蓋父類的屬性。
子類重寫父類的方法時,子類重寫的方法名稱必須與父類方法名稱一致,且返回值和入參都不能改變,不能縮小父類方法的訪問許可權。

4.super與this
super關鍵字可以在子類中呼叫父類中被重寫的方法。
子類不能繼承父類的構造方法,父類的構造方法只屬於父類。可以通過super關鍵字訪問父類的構造方法並給父類的成員屬性進行賦值。

this關鍵字可以獲取當前子類中定義的成員屬性或成員方法,也可以用this關鍵字用來區分並獲取類中定義的成員變數。

二,多型
1.定義
多型是指一個物件的行為可以有多種不同的表現形式。

2.過載
過載是指在一個類裡的方法名稱相同,但是入參不同(可以是數量不同,也可以是型別不同),返回型別也可以不同。(程式根據入參動態識別具體呼叫哪個方法,當方法只有返回型別不同時,無法區分是哪個方法)。

3.型別轉換呼叫
向上型別轉換是指將子類物件引用轉換為父類物件引用。(不能呼叫只存在子類中的成員)
向下型別轉換是指將父類物件引用轉換為子類物件引用。

三,重寫與過載
重寫與過載

相關文章