繼承與多型
一,繼承
1.定義
繼承是在一個類的基礎上,制定出一個新的類,這個新的類不僅可以繼承原來類的屬性和方法,也可以增加新的屬性和方法。原來的類稱為父類,新的類稱為子類。
2.繼承關係
Java不支援多重繼承,一個子類只能繼承一個父類,即 extends 關鍵字後只允許出現一個類名。
繼承具有傳遞性,支援多層繼承。
子類在建立一個新的物件時,執行順序是先找到最根的父親,接著開始執行根父類的構造方法,然後依次向下執行派生出來的子類的構造方法,直到執行完所有子類構造方法為止。
子類可以繼承父類所有非私有的成員方法(public,protected),而無法繼承父類私有的成員方法(private)。
3.重寫
子類可以定義與父類屬性同名的屬性,字類屬性將覆蓋父類的屬性。
子類重寫父類的方法時,子類重寫的方法名稱必須與父類方法名稱一致,且返回值和入參都不能改變,不能縮小父類方法的訪問許可權。
4.super與this
super關鍵字可以在子類中呼叫父類中被重寫的方法。
子類不能繼承父類的構造方法,父類的構造方法只屬於父類。可以通過super關鍵字訪問父類的構造方法並給父類的成員屬性進行賦值。
this關鍵字可以獲取當前子類中定義的成員屬性或成員方法,也可以用this關鍵字用來區分並獲取類中定義的成員變數。
二,多型
1.定義
多型是指一個物件的行為可以有多種不同的表現形式。
2.過載
過載是指在一個類裡的方法名稱相同,但是入參不同(可以是數量不同,也可以是型別不同),返回型別也可以不同。(程式根據入參動態識別具體呼叫哪個方法,當方法只有返回型別不同時,無法區分是哪個方法)。
3.型別轉換呼叫
向上型別轉換是指將子類物件引用轉換為父類物件引用。(不能呼叫只存在子類中的成員)
向下型別轉換是指將父類物件引用轉換為子類物件引用。
三,重寫與過載
相關文章
- java繼承與多型Java繼承多型
- JavaScript 的繼承與多型JavaScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- 多繼承 與 多重繼承繼承
- Java 繼承與多型實驗Java繼承多型
- 繼承和多型繼承多型
- 多型和繼承多型繼承
- Java中的類繼承與多型Java繼承多型
- 繼承+多型+抽象類繼承多型抽象
- Python 繼承 和 多型Python繼承多型
- OOP的多型和繼承OOP多型繼承
- TypeScript(5)類、繼承、多型TypeScript繼承多型
- 封裝、繼承和多型封裝繼承多型
- 繼承與派生,多繼承,函式過載,建構函式呼叫順序 靜態多型和動態多型繼承函式多型
- C中的繼承和多型繼承多型
- 《Java從入門到失業》第五章:繼承與多型(5.1-5.7):繼承Java繼承多型
- 多繼承繼承
- Python 簡明教程 --- 21,Python 繼承與多型Python繼承多型
- 詳細介紹Python類的繼承與多型Python繼承多型
- js原型繼承與多型 How to apply virtual function in javascriptJS原型繼承多型APPFunctionJavaScript
- c++菱形繼承、多型與類記憶體模型C++繼承多型記憶體模型
- Python中的繼承和多型Python繼承多型
- 太極1:繼承和多型2繼承多型
- C語言實現繼承多型C語言繼承多型
- [c++] 繼承和多型整理二C++繼承多型
- 面向2-封裝、繼承、多型封裝繼承多型
- Head First Java學習筆記(7):繼承與多型Java筆記繼承多型
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- C#中繼承和多型的研究C#中繼繼承多型
- Java基礎之淺談繼承、多型Java繼承多型
- C++ 繼承、多型、虛擬函式C++繼承多型函式
- 【Java學習筆記】繼承和多型Java筆記繼承多型
- aardio 實現封裝繼承多型封裝繼承多型
- C++ 多級繼承與多重繼承:程式碼組織與靈活性的平衡C++繼承
- go語言中的封裝,繼承和多型Go封裝繼承多型
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型