09 繼承 super this 抽象類

2021-10-06 11:28:54 字數 2326 閱讀 5348

繼承:就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性、相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。

在父子類的繼承關係當中,如果成員變數重名,則建立子類物件時,訪問有兩種方式:

直接通過子類物件訪問成員變數:

等號左邊是誰,就優先用誰,沒有則向上找。

間接通過成員方法訪問成員變數:

該方法屬於誰,就優先用誰,沒有則向上找。

// 等號左邊是誰,就優先用誰

system.out.

println

(zi.num)

;// 優先子類,200

// system.out.println(zi.abc); // 到處都沒有,編譯報錯!

system.out.

println

("**********=");

// 這個方法是子類的,優先用子類的,沒有再向上找

zi.methodzi()

;// 200

// 這個方法是在父類當中定義的,

zi.methodfu()

;// 100

繼承關係中,父子類構造方法的訪問特點:

子類構造方法當中有乙個預設隱含的「super()」呼叫,所以一定是先呼叫的父類構造,後執行的子類構造。

子類構造可以通過super關鍵字來呼叫父類過載構造。

super的父類構造呼叫,必須是子類構造方法的第乙個語句。不能乙個子類構造呼叫多次super構造。

總結:子類必須呼叫父類構造方法,不寫則贈送super();寫了則用寫的指定的super呼叫,super只能有乙個,還必須是第乙個。

super關鍵字用來訪問父類內容,而this關鍵字用來訪問本類內容。用法也有三種:

在本類的成員方法中,訪問本類的成員變數。

在本類的成員方法中,訪問本類的另乙個成員方法。

在本類的構造方法中,訪問本類的另乙個構造方法。

在第三種用法當中要注意:

a. this(…)呼叫也必須是構造方法的第乙個語句,唯一乙個。

b. super和this兩種構造呼叫,不能同時使用。

區域性變數: 直接寫成員變數名

本類的成員變數: this.成員變數名

父類的成員變數: super.成員變數名

super關鍵字的用法有三種:

在子類的成員方法中,訪問父類的成員變數。

在子類的成員方法中,訪問父類的成員方法。

在子類的構造方法中,訪問父類的構造方法。

在父子類的繼承關係當中,建立子類物件,訪問成員方法的規則:

建立的物件是誰,就優先用誰,如果沒有則向上找。

注意事項:

無論是成員方法還是成員變數,如果沒有都是向上找父類,絕對不會向下找子類的。

重寫(override)

概念:在繼承關係當中,方法的名稱一樣,引數列表也一樣。

重寫(override):方法的名稱一樣,引數列表【也一樣】。覆蓋、覆寫。

過載(overload):方法的名稱一樣,引數列表【不一樣】。

方法的覆蓋重寫特點:建立的是子類物件,則優先用子類方法。

方法覆蓋重寫的注意事項:

必須保證父子類之間方法的名稱相同,引數列表也相同。

@override:寫在方法前面,用來檢測是不是有效的正確覆蓋重寫。

這個註解就算不寫,只要滿足要求,也是正確的方法覆蓋重寫。

抽象方法:就是加上abstract關鍵字,然後去掉大括號,直接分號結束。

抽象類:抽象方法所在的類,必須是抽象類才行。在class之前寫上abstract即可。

如何使用抽象類和抽象方法:

不能直接建立new抽象類物件。

必須用乙個子類來繼承抽象父類。

子類必須覆蓋重寫抽象父類當中所有的抽象方法。

覆蓋重寫(實現):子類去掉抽象方法的abstract關鍵字,然後補上方法體大括號。

建立子類物件進行使用。

乙個抽象類不一定含有抽象方法,

只要保證抽象方法所在的類是抽象類,即可。

這樣沒有抽象方法的抽象類,也不能直接建立物件,在一些特殊場景下有用途。

day09 繼承 super this 抽象類

子父類 現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用 super 關鍵字,修飾父類成員變數,類似於之前學過的 this class father class sonextends father class extendsdemo03 演示結果 fu num 6zi num ...

繼承 super this 抽象類

頂層父類object類,所有的類預設繼承object 定義 就是子類繼承父類的屬性和行為,使得子類具有與父類相同的屬性 相同的行為,子類可以直接訪問父類中的非私有的屬性和行為 子類是基於父類的功能和屬性進一步 繼承優點 提高 的復用性 類與類之間產生了關係,是多型的前提 格式 繼承後的特點 成員變數...

繼承,super,this,抽象類

繼承 就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性 相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。通過 extends 關鍵字,可以宣告乙個子類繼承另外乙個父類,定義格式如下 如下 class 父類 class 子類 extends 父類 成員變數同名時 小貼士 fu ...