this關鍵字與super關鍵字區別


為什么要使用super關鍵字?

  子類中要訪問父類方法或變量。
  子類中調用父類的構造器
使用注意事項:

  只能在構造方法或實例方法內使用super關鍵字,在靜態方法和靜態代碼塊內不能使用super關鍵字。

  在子類構造方法中如沒有使用this關鍵字,會隱式調用父類的無參構造方法;

  創建子類對象時,默認會先調用父類無參的構造方法,可以通過super關鍵字指定調用父類的構造方法。 

    (1) 如果在子類的構造方法上沒有指定調用父類的構造方法,那么java編譯器會在子類的構造方法內加上super()語句。

    (2) super關鍵字調用父類的構造函數時,該語句必須要是子類構造函數中的第一個語句。

this關鍵字與super關鍵字主要區別

  (1) 代表的事物不一致。

    super關鍵字代表的是父類空間的引用。(並不能代表對象,只是代表一個對象中的一塊內存而已) 

    this關鍵字代表的是所屬函數的調用者對象。

  (2) 使用前提不一致。

    super關鍵字必須要有繼承關系才能使用。

    this關鍵字不需要存在繼承關系也可使用

  (3) 調用構造函數的區別:

     super關鍵字是調用父類的構造函數。

     this關鍵字是調用本類的構造函數。

  (4) super與this關鍵字不能同時出現在同一個構造函數中調用其他的構造函數。因為兩個語句都需要第一個語句。
 












 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM