為什么要使用super關鍵字?
子類中要訪問父類方法或變量。
子類中調用父類的構造器
使用注意事項:
只能在構造方法或實例方法內使用super關鍵字,在靜態方法和靜態代碼塊內不能使用super關鍵字。
在子類構造方法中如沒有使用this關鍵字,會隱式調用父類的無參構造方法;
創建子類對象時,默認會先調用父類無參的構造方法,可以通過super關鍵字指定調用父類的構造方法。
(1) 如果在子類的構造方法上沒有指定調用父類的構造方法,那么java編譯器會在子類的構造方法內加上super()語句。
(2) super關鍵字調用父類的構造函數時,該語句必須要是子類構造函數中的第一個語句。
this關鍵字與super關鍵字主要區別
(1) 代表的事物不一致。
super關鍵字代表的是父類空間的引用。(並不能代表對象,只是代表一個對象中的一塊內存而已)
this關鍵字代表的是所屬函數的調用者對象。
(2) 使用前提不一致。
super關鍵字必須要有繼承關系才能使用。
this關鍵字不需要存在繼承關系也可使用
(3) 調用構造函數的區別:
super關鍵字是調用父類的構造函數。
this關鍵字是調用本類的構造函數。
(4) super與this關鍵字不能同時出現在同一個構造函數中調用其他的構造函數。因為兩個語句都需要第一個語句。
