Java基礎 super關鍵字與this關鍵字

2021-09-02 12:31:45 字數 1122 閱讀 1552

用super呼叫父類構造方法

類如果沒有顯式宣告構造方法,則自動生成無引數的預設構造方法。

1.先用乙個無引數的父類構造方法驗證一下,

執行子類構造方法會自動呼叫父類的構造方法。測試**:

class

human3

}class pupil3 extends

human3

}public

class

example3

}

執行結果:

表明,子類構造方法會預設呼叫父類的構造方法,對於無參的父類構造方法,寫不寫super()輸出結果是一樣的。

2.用乙個有引數的父類構造方法驗證一下。

執行子類構造方法會自動呼叫父類的構造方法。測試**:

1

class

human3

1112}13

14class pupil3 extends

human3

2526}27

28public

class

example3

34 }

執行結果

3.此時如果注釋掉super方法就會報錯。

報錯原因:子類必須繼承父類的構造方法,如果父類構造方法中沒有引數傳遞,那麼預設是不寫super()繼承父類的構造方法的。

human3類的構造方法沒有無引數的構造方法,所以,必須繼承父類有引數的構造方法,所以,必須寫super關鍵字來繼承父類的有引數的構造方法。

除了呼叫父類構造方法外,super還可在子類中指代父類物件,用於:

訪問被子類隱藏的父類字段,

呼叫被子類覆蓋的父類方法。

使用形式:

super.父類欄位名

super.父類方法名(可選實參表)

4.例項成員(例項字段、例項方法):沒有static修飾的成員。

例項成員就是非靜態成員,例項成員為類物件所獨佔。

使用物件(例項)作字首引用例項成員,語法形式:

物件名.方法名(實參表)

物件名.欄位名

關鍵字this用於指代當前的物件。因此,類內部可以使用this作字首引用例項成員。

例如,pupil3類中可用this.age引用例項欄位age。

Java的this與super關鍵字

一 public class father public void set a int num public static void main string args 在這裡,我們給father類寫了個構造方法。建立了乙個物件,並呼叫其set a 方法為a賦值並列印賦值後的結果。執行結果 fathe...

Java基礎知識 super關鍵字

1 繼承要注意的幾點 屬性和方法的不同。屬性不可重寫,屬性可以覆蓋 屬性沒有多型性,屬性值取決於引用型別 方法可以重寫,方法有多型性 方法的行為取決於物件而不取決於引用類 生成子類物件必須呼叫父類構造方法,子類構造方法必須和父類構造方法匹配。下面程式 中a.name與a.fn 分別為屬性和物件。繼承...

java中super關鍵字

1 在物件的內部使用,可以代表父類物件。a 訪問父類的屬性 super.age b 訪問父類的方法 super.eat public class animal public class dog extends animal public void method public class initai...