十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
java中this與super的區(qū)別是什么?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

this是自身的一個(gè)對(duì)象,代表對(duì)象本身,用法大致分為以下3類:
1、普通直接引用當(dāng)前對(duì)象本身
2、形參和成員名重名,用this來(lái)區(qū)分
3、引用構(gòu)造方法 ,this(參數(shù)) ,應(yīng)該為構(gòu)造函數(shù)中的第一條語(yǔ)句,調(diào)用的事1本類中另外一種形式的構(gòu)造方法。
public class Demo{
String name;
public void setName(String name) {
this.name = name;// 前一個(gè)name是 本類的成員屬性: name;
// 后一個(gè)name是setName中的參數(shù)。
}
public static void main(String[]args){
Demo m=new Demo();
m.setName("旺旺");
}
}super可以理解為是指向自己超(父)類對(duì)象,這個(gè)超類指的是離自己最近的一個(gè)父類。也大致分為3種用法:
(視頻教程推薦:java視頻教程)
1、普通的直接引用,與this類似,只不過(guò)它是父類對(duì)象,可以通過(guò)它調(diào)用父類成員。
2、子類中的成員變量或方法與父類中的成員變量或方法同名,可以使用super區(qū)分。
3、引用構(gòu)造方法,super(參數(shù)):調(diào)用父類中的某一個(gè)構(gòu)造方法(應(yīng)該為構(gòu)造方法中的第一條語(yǔ)句)
public class Main extends teacher{
public static void main(String[] args) {
//super();
}
public Main(){
this();
super();//出錯(cuò),this()與super()不能同時(shí)出現(xiàn),且this(),super()都必須在第一行
}
}
class teacher {
}屬性的區(qū)別:this訪問(wèn)本類中的屬性,如果本類沒(méi)有此屬性則從父類中繼續(xù)查找。super訪問(wèn)父類中的屬性。
方法的區(qū)別:this訪問(wèn)本類中的方法,如果本類沒(méi)有此方法則從父類中繼續(xù)查找。super訪問(wèn)父類中的方法。
構(gòu)造的區(qū)別:this調(diào)用本類構(gòu)造,必須放在構(gòu)造方法的首行。super調(diào)用父類構(gòu)造,必須放在子類構(gòu)造方法首行。
其他區(qū)別:this表示當(dāng)前對(duì)象。super不能表示當(dāng)前對(duì)象。
看完上述內(nèi)容,你們掌握java中this與super的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!