您好,登錄后才能下訂單哦!
java中this與super的區別是什么?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
this是自身的一個對象,代表對象本身,用法大致分為以下3類:
1、普通直接引用當前對象本身
2、形參和成員名重名,用this來區分
3、引用構造方法 ,this(參數) ,應該為構造函數中的第一條語句,調用的事1本類中另外一種形式的構造方法。
public class Demo{ String name; public void setName(String name) { this.name = name;// 前一個name是 本類的成員屬性: name; // 后一個name是setName中的參數。 } public static void main(String[]args){ Demo m=new Demo(); m.setName("旺旺"); } }
super可以理解為是指向自己超(父)類對象,這個超類指的是離自己最近的一個父類。也大致分為3種用法:
(視頻教程推薦:java視頻教程)
1、普通的直接引用,與this類似,只不過它是父類對象,可以通過它調用父類成員。
2、子類中的成員變量或方法與父類中的成員變量或方法同名,可以使用super區分。
3、引用構造方法,super(參數):調用父類中的某一個構造方法(應該為構造方法中的第一條語句)
public class Main extends teacher{ public static void main(String[] args) { //super(); } public Main(){ this(); super();//出錯,this()與super()不能同時出現,且this(),super()都必須在第一行 } } class teacher { }
屬性的區別:this訪問本類中的屬性,如果本類沒有此屬性則從父類中繼續查找。super訪問父類中的屬性。
方法的區別:this訪問本類中的方法,如果本類沒有此方法則從父類中繼續查找。super訪問父類中的方法。
構造的區別:this調用本類構造,必須放在構造方法的首行。super調用父類構造,必須放在子類構造方法首行。
其他區別:this表示當前對象。super不能表示當前對象。
看完上述內容,你們掌握java中this與super的區別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。