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.可以更改存取許可權。
相關文章
- 【Java學習筆記】繼承和多型Java筆記繼承多型
- JAVA學習筆記-繼承Java筆記繼承
- JavaScript 型別、原型與繼承學習筆記JavaScript型別原型繼承筆記
- java繼承與多型Java繼承多型
- Java學習筆記之繼承Java筆記繼承
- 學習部落格之Java繼承多型介面Java繼承多型
- Java 繼承與多型實驗Java繼承多型
- 【Go學習筆記14】嵌入型別(繼承)Go筆記型別繼承
- Head First HTML 與 CSS(第二版)學習筆記HTMLCSS筆記
- 繼承與多型繼承多型
- head first java讀書筆記Java筆記
- JavaScript 的繼承與多型JavaScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- C++學習筆記——C++ 繼承C++筆記繼承
- 《Java核心技術》第五章 繼承 學習筆記Java繼承筆記
- 多繼承 與 多重繼承繼承
- PHP 手冊 (類與物件) 學習筆記七:物件繼承PHP物件筆記繼承
- JAVA入門學習初步總結3 方法類繼承多型等Java繼承多型
- 繼承和多型繼承多型
- Solidity語言學習筆記————34、繼承Solid筆記繼承
- Head First jQuery讀書筆記jQuery筆記
- c++學習(1)--C++封裝、繼承、多型C++封裝繼承多型
- Java核心技術筆記 繼承Java筆記繼承
- 繼承筆記繼承筆記
- 《Java從入門到失業》第五章:繼承與多型(5.1-5.7):繼承Java繼承多型
- head first java第一章的學習Java
- Java基礎之淺談繼承、多型Java繼承多型
- 繼承+多型+抽象類繼承多型抽象
- 《Head First HTML 與 CSS》讀書筆記之CSS篇HTMLCSS筆記
- Java學習筆記7(Java常用類庫與工具 )Java筆記
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- Java學習筆記之多型Java筆記多型
- oop繼承與重寫筆記一OOP繼承筆記
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- Head First設計模式讀書筆記設計模式筆記
- Python 繼承 和 多型Python繼承多型