第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問super() 本身是個什么含義,放在這里又作何解釋?

請問super() 本身是個什么含義,放在這里又作何解釋?

蕭十郎 2022-04-15 15:11:28
舉個例子:先自定義一個類:public class Bird{private String name;public Bird() {}public Bird(String name){this.name = name;}public void walk() {System.out.println("走路");}public String getName(){return name;}public void setName(String name){this.name = name;}}再定義一個類,同時(shí)繼承上邊的類;public class Chicken extends Bird{private String crest;public Chicken(){super();}public Chicken(String name,String crest) {super(name);this.name = name;}.............}我省略了一些代碼,應(yīng)該是對這個問題無關(guān)緊要的。在第二個自定義的類中,super()方法一共出現(xiàn)了兩次,分別是super()和super(name),請問super() 本身是個什么含義,放在這里又作何解釋?希望能用白話而不是JAVA專業(yè)術(shù)語解釋,謝謝。
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個贊

要講super就不能不提t(yī)his,下面從4個角度講解一下super(需要對比的時(shí)候拿this對比一下,加深理解)
1. super關(guān)鍵字表示超(父)類的意思。this變量代表對象本身。
2. super訪問父類被子類隱藏的變量或覆蓋的方法。當(dāng)前類如果是從超類繼承而來的,當(dāng)調(diào)用super.XX()就是調(diào)用基類版本的XX()方法。其中超類是最近的父類。
3.調(diào)用super() 父類構(gòu)造函數(shù)的時(shí)候只能調(diào)用在子類構(gòu)造函數(shù)的第一行
4.this只能在類中的非靜態(tài)方法中使用,靜態(tài)方法和靜態(tài)的代碼塊中絕對不能出現(xiàn)this。并且this只和特定的對象關(guān)聯(lián),而不和類關(guān)聯(lián),同一個類的不同對象有不同的this

例如:
class Person {
protected void print() {
System.out.println("The print() in class Person.");
}
}
public class DemoSuper extends Person {
public DemoSuper(){
super(); //調(diào)用父類的構(gòu)造方法,而且放第一行,如果不寫,系統(tǒng)自動加
}
public void print() {
System.out.println("The print() in class DemoSuper.");
super.print();// 調(diào)用父類的方法
}
public static void main(String[] args) {
DemoSuper ds = new DemoSuper();
ds.print();
}
}



查看完整回答
反對 回復(fù) 2022-04-19
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個贊

super() 是調(diào)用父類的構(gòu)造函數(shù),你例子中有Bird()和Bird(String name)兩個方法,super()是調(diào)用Bird()構(gòu)造函數(shù),而super(name)是調(diào)用Birth(String name)構(gòu)造函數(shù)。注意super() 調(diào)用的是對應(yīng)參數(shù)個數(shù)和類型相同的父類構(gòu)造函數(shù)。
public Chicken(String name,String crest) {
super(name);
this.name = name;
}
應(yīng)該重復(fù)了吧,super(name)應(yīng)該就是this.name = name。

查看完整回答
反對 回復(fù) 2022-04-19
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊

首先告訴你一些概念:
繼承中的構(gòu)造方法??!
1。子類的構(gòu)造過程中必須調(diào)用父類的構(gòu)造方法
2.子類可在自己的構(gòu)造方法中使用super()來調(diào)用父類的構(gòu)造方法
(1)使用this來調(diào)用本類的另外的構(gòu)造方法
(2)如果調(diào)用super必須寫在子類構(gòu)造方法的第一行
3.如果子類的構(gòu)造方法中沒有顯示的調(diào)用父類的構(gòu)造方法,則系統(tǒng)默認(rèn)的調(diào)用父類的無參的構(gòu)造方法。
4.如果子類的構(gòu)造方法中既沒有顯示調(diào)用父類的構(gòu)造方法,而父類中又沒有無參的構(gòu)造方法,則編譯出錯。

那你這里第一個super()無參的就是調(diào)用了上面Bird類的walk() 方法!
super(name)這個有參數(shù)就是調(diào)用public Bird(String name){
this.name = name; 這個方法!



查看完整回答
反對 回復(fù) 2022-04-19
  • 3 回答
  • 0 關(guān)注
  • 358 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號