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

為了賬號安全,請及時綁定郵箱和手機立即綁定

super關(guān)鍵字

在父類中定義了有參構(gòu)造方法,例如

public Animal(int age){

?this.age=age;

? }

?在子類中寫super();會報錯,要寫成super(age); 還要把Dog類中的age屬性加上static,為什么

正在回答

2 回答

父類Animal只有這一個有參的構(gòu)造方法:

????public Animal(int age){

?????this.age=age;

? ??}

子類Dog的構(gòu)造方法里必須調(diào)用這個構(gòu)造方法(父類沒有無參的構(gòu)造方法):

????public Dog(int age){

????????super(age);????????

????}

這里如果你寫super()會報錯,super()的意思是調(diào)用父類無參的構(gòu)造方法,super(age)的意思是調(diào)用父類參數(shù)里是int XX的構(gòu)造方法。前面不是說過,Animal沒有無參的構(gòu)造方法,所以Dog必須去調(diào)用有參的那個,必須用super(age)。

注:這里要提醒你,一個類沒有寫構(gòu)造方法時,java會給它一個默認的無參構(gòu)造方法,但當(dāng)你自己定義了一個有參? ? 構(gòu)造方法,這個類就沒有了無參的構(gòu)造方法;子類的構(gòu)造方法里都必須調(diào)用父類的構(gòu)造方法,當(dāng)你不寫時,默認調(diào)用父類無參的構(gòu)造方法,你也可以用super關(guān)鍵字去自己調(diào)用父類的構(gòu)造方法。如果父類沒有無參構(gòu)造方法,你當(dāng)然無法去調(diào)用。


另外,Dog的age屬性要加static。沒看代碼,我不知道為什么,一般是不會這樣的。你把代碼發(fā)給我看看。


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕先生7094416 提問者

我在下面黏貼了兩個類,你看一下吧
2015-09-22 回復(fù) 有任何疑惑可以回復(fù)我~

? public class Animal {

? public int age=10;

? public String name;

? public void eat(){

?System.out.println("動物具有吃的能力");

? ? }

blic Animal(int age){

?this.age=age;

? }

}

--------------------------------------------------------------

public class Dog extends Animal {

? ?public int age=20;

? ?public String name;

? ?public void eat(){

? System.out.println("狗具有吃骨頭的能力");

? ?}

? ?//無參構(gòu)造方法

? ?public Dog(){

? System.out.println("子類的構(gòu)造方法執(zhí)行了");

? ?}

? ?public void method(){

? System.out.println(age);

? eat();

? ?}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

無動于衷

這里Dog的age屬性不用加static啊。
2015-09-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學(xué)習(xí)       531220    人
  • 解答問題       6327    個

課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙

進入課程

super關(guān)鍵字

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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