Head First Java學習筆記(7):繼承與多型
繼承
子類繼承父類: 子類繼承了父類的成員,即父類的例項變數和方法。子類可以重寫繼承下來的父類的方法,也可以加入自己的例項變數和方法。
設計繼承樹: ①找出具有共同屬性和行為的物件。
②設計代表共同狀態與行為的類。
③決定子類是否需要讓某項行為(也就是方法的實現)有特定不同的運作方式。
④通過尋找使用共同行為的子類來找出更多抽象化的機會。
⑤完成類的繼承層次。
方法呼叫: 當呼叫物件引用的方法時,最低階的會勝出。即JVM會從層次樹最下方開始找起,並往上尋找直到找到為止。
IS-A與HAS-A: IS-A:判斷類之間是否有繼承關係;
HAS-A:包含關係。
super: 用於子類中引用父類的方法並加上額外行為。
public void roam() {
super,roam();//先執行super版的roam(),再執行自定義的行為
//my own roam stuff
}
許可權: 父類可以通過存取許可權決定子類是否能繼承某些成員。
public型別的成員會被繼承;
private型別的成員不會被繼承。
繼承的意義: ①繼承避免了重複的程式碼。
②繼承定義出共同的協議。
多型
1.運用多型時,引用型別可以是實際物件型別的父類,即子類的物件可以賦值給父類的變數。
2.引數和返回型別也可以多型。
//多型變數
1.Java的物件變數是多型的,它們能儲存不止一種型別的物件。
2.它們可以儲存的是宣告型別的物件,或宣告型別的子類的物件。
3.當把子類的物件賦給父類的變數的時候,就發生了向上造型。
final修飾符:修飾類時表示是繼承樹的末端,類不能再被繼承。修飾方法時可以防止該方法被覆蓋。
覆蓋
1.引數必須要一樣,且返回型別必須要相容。
2.不能降低方法的存取許可權。
方法過載
過載即方法名稱相同,但引數不同。
1.返回型別可以不同。
2.不能只改變返回型別。
3.可以更改存取許可權。
相關文章
- JavaScript 型別、原型與繼承學習筆記JavaScript型別原型繼承筆記
- java繼承與多型Java繼承多型
- Head First HTML 與 CSS(第二版)學習筆記HTMLCSS筆記
- 《Head First Java》20201017讀書筆記Java筆記
- 《Head First Java》20200927讀書筆記Java筆記
- 《Head First Java》20201009讀書筆記Java筆記
- 繼承與多型繼承多型
- Java中的類繼承與多型Java繼承多型
- JavaScript 的繼承與多型JavaScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- 《Java核心技術》第五章 繼承 學習筆記Java繼承筆記
- C++學習筆記——C++ 繼承C++筆記繼承
- Solidity語言學習筆記————34、繼承Solid筆記繼承
- 多繼承 與 多重繼承繼承
- head first java第一章的學習Java
- PHP 手冊 (類與物件) 學習筆記七:物件繼承PHP物件筆記繼承
- JAVA入門學習初步總結3 方法類繼承多型等Java繼承多型
- 多型和繼承多型繼承
- Head First設計模式讀書筆記設計模式筆記
- Java核心技術筆記 繼承Java筆記繼承
- c++菱形繼承、多型與類記憶體模型C++繼承多型記憶體模型
- Java基礎之淺談繼承、多型Java繼承多型
- Java學習筆記7(Java常用類庫與工具 )Java筆記
- 《Java從入門到失業》第五章:繼承與多型(5.1-5.7):繼承Java繼承多型
- Python 繼承 和 多型Python繼承多型
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Java 自學 - 介面與繼承 介面Java繼承
- 封裝、繼承和多型封裝繼承多型
- TypeScript(5)類、繼承、多型TypeScript繼承多型
- OOP的多型和繼承OOP多型繼承
- Python 簡明教程 --- 21,Python 繼承與多型Python繼承多型
- Java繼承練習Java繼承
- java學習——物件導向之繼承Java物件繼承
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- Cris 的 Scala 筆記整理(八):物件導向中級-繼承和多型筆記物件繼承多型