Please enable JavaScript.
Coggle requires JavaScript to display documents.
繼承 (繼承, 訪問修飾符, super關鍵字, 方法重寫和重載, this關鍵字, final關鍵字) - Coggle Diagram
繼承
繼承
定義
類與類之間的關係
用已存在的類作為基礎,建立新類
新類可增加新的數據或功能
也可用父類的功能,不能選擇性地繼承父類
訪問權限
子類只能訪問父類的非私有成員
父類不能訪問子類的成員
子類可定義跟父類同名的屬性(但調用時,會用子類的數值)
特點
利於代碼複用
縮短開發週期
語法
子類 extends 父類
單一繼承,只有一個父類
繼承後初始化順序
父類靜態成員>子類靜態成員>父類對象構造>子類對象構造
訪問修飾符
private
允許本類
默認
允許 同包子類/同包非子類 訪問
跨包 子類/非子類 不允許訪問
protected
允許 同包子類/同包非子類/跨包子類 訪問
跨包 非子類 不允許訪問
public
允許任意位置訪問
訪問範圍
public>protected>默認>private
super關鍵字
定義
當前父類的對象
默認調用父類的無參構造
必在代碼第一行
不允許被繼承被重寫,會影響子類的實例化
不能在靜態方法使用
語法
父類構造方法:super()
父類屬性:super.name
父類成員:super.print()
常見錯誤
默認調用父類,父類沒有無參構造,編譯報錯,不一定無法正常執行
子類沒有任何構造方法,調用帶參構造,編譯報錯且運行異常
子類有構造方法,父類只有帶參構造,編譯報錯,不一定無法正常執行
方法重寫和重載
方法重載
定義
在同一個類中
方法名相同
參數列表不同(個數/順序/類型)
重載的返回值可以不同
與方法參數名無關
範例
public void sleep(){}
private String sleep(String name){}
public void sleep(int a){}
方法重寫
定義
寫在子類當中
方法名.參數列表與父類相同(類型.順序.個數)
與方法的參數名無關
訪問修飾符需大於等於父類訪問範圍
返回值
基本數據類型
返回值完全一致
自定義的引用類型
可以是父類也能子類方法
this關鍵字
定義
訪問當前對象
不能在靜態方法使用
不能和super同時使用
final關鍵字
語法
final+class Cat
定義
表示最終,不希望類被其他類繼承
final在父類,不允許子類重寫,但可以被子類繼承
用之前初始化賦值即可,一旦賦值不允許修改
可配合static使用 EX:final static
可提高性能,但降低可擴展性