繼承
概念:為了提取兩個類中公共代碼,可以使用繼承抽取重復性的代碼到一個公共類中,這個公共的類稱為父類(super class)。繼承於父類的類稱為子類(sub class).
關鍵字 extends
特性:
[1] 單根性。在java中,一個類只能有一個直接父類。
[2] 傳遞性。C繼承於B,B繼承於A,C具有A的特性和行為。
[3]之類擁有非私有的屬性和方法
關鍵字 super
【1】表示父類關系,僅僅一個關鍵字,里面沒引用。
【2】super訪問父類構造方法 注意:必須寫到構造方法有效代碼第一句
【3】super調用父類的非私有屬性。
屬性隱藏
【1】當子類定義了一個和父類同名的屬性時,在子類中優先訪問子類的屬性,如果要訪問父類屬性一定要加super。
繼承關系的初始化順序
【1】父類屬性初始化 -------父類構造器--------之類屬性初始化--------之類構造器
子類繼承父類方法重寫
意義:當子類從父類繼承過來的方法不能滿足自身需要時,子類可以根據自身情況進行方法重寫
【1】方法名稱相同
【2】參數列表相同
【3】子類的訪問權限一定 >= 父類訪問權限
【4】返回值和父類相同或者是其子類
訪問修飾符
修飾符 |
本類✘ |
同包子類 |
同包其他類 |
不同包子類 |
不同包其他類 |
private |
✔ |
✘ |
✘ |
✘ |
✘ |
默認 |
✔ |
✔ |
✔ |
✘ |
✘ |
protected |
✔ |
✔ |
✔ |
✔ |
✘ |
public |
✔ |
✔ |
✔ |
✔ |
✔ |
【1】private:私有的,只能在本類可以訪問。
【2】friendly:默認的,同包可訪問,也稱包訪問權限。
【3】protected:受保護的, ①子類可訪問 ②同包可訪問
【4】public:公共的,都可以訪問