淺談Java中的super和this

super():代表父類對象,調(diào)用父類的構(gòu)造方法,如果在子類的構(gòu)造函數(shù)中調(diào)用該函數(shù)則必須放在第一行,該方法會將父類的變量與方法記載到子類開辟的堆內(nèi)存中。

public class Father {
    
     private  int id;
     public Father()
     {
         
     }
     
    public Father(int id) {     
        this.id = id;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    
}
public class son extends Father {
   
      public son()
      {
          super();//調(diào)用父類的無參構(gòu)造方法
      }
      public son(int id)
      {
          super(id);//調(diào)用父類的有殘構(gòu)造方法
      } 
}

如果父類沒有無參構(gòu)造方法導致子類調(diào)用不到相應(yīng)的構(gòu)造方法

this():指代本類對象,用于調(diào)用本類構(gòu)造方法和屬性還有普通方法,如果在本類找不到就去父類中找

注意:this和super不能在靜態(tài)方法中使用(因為靜態(tài)方法是隨著類的加載而加載,此時還沒有對象,而this和super指本類和父類)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容