學習筆記 第七章 復用類

2021-07-23 13:34:28 字數 864 閱讀 6649

復用類的兩種方式:

組合:在新類中包含現有類。

繼承:新類繼承自現有類。

初始化基類

class

father

}class

sonextends

father

}public

class

demo

}/*output:

father

son*/

子類物件生成時會建立基類物件幷包含在子類物件中。

如果基類沒有不含參的構造方法則在子類構造方法的第一行用super關鍵字呼叫父類構造方法。

子類物件繼承自父類物件,希望訪問父類的成員及方法,那麼建立父類的物件是最好的選擇。子類物件不可能憑空產生,需要父類物件先生成,先有父才有子。

**在新類中包含現有類物件,並且保留現有類的方法(重新封裝)。

如何在組合和繼承中選擇

組合:在新類中希望借助現有類的功能來完成新類的功能。(has-a)

繼承:希望開發出新類的乙個特殊版本,拓展其功能。(is-a)

向上轉型

將子類轉型為其父類或祖類。乙個方法的引數可以接受該引數對應類的子類。

final關鍵字

final常量:一般為基本型別,一旦賦值,其值不可改變。

final引用:該引用只能指向初始化時的物件,不能再指向其他物件。

final引數:在該方法中,無法修改該引數引用指向的物件。

final方法:該方法無法被重寫。

final類:不可被繼承。

繼承與初始化

當當前類被載入時,若當前類繼承自某個父類,則載入其父類。

初始化順序:靜態變數/靜態**塊 - 匿名**塊 - 成員變數

第七章 復用類

1 子類可以使用父類public protected的方法和成員。子類可以過載父類的方法,但是方法名和引數列表相同,當返回型別不同的方法在子類中會出現編譯期錯誤。由8.4節中允許 犯規協變返回型別,即子型別。2 基類中private可視為基類的結構,對外無任何影響,所以在子類中出現乙個方法名和引數列...

第七章 復用類

class cleaner public cleaner private string s cleaner s a public void dilute public void scrub public string tostring public static void main string a...

第七章 復用類

有乙個類a,aa繼承a,類繼承圖將父類放在最頂部,子類放在下方,a a new aa 此處aa自動向上轉成了a型別。根據類繼承圖可以進行理解向上的這個關係。修飾類 表示該類不能被繼承 修飾方法 表示方法不能被重寫 修飾變數 表示變數只能一次賦值以後值不能被修改 常量 final和static fin...