用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...