最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于java里的父類引用子類

public class Initial {
public static void main(String [] agr){
Base a=new Sub();
a.print();
System.out.println(a.nums);
}
}

public class Base {
public int nums=10;
public void print(){
System.out.println("這里是Base的方法");
}
public Base(){
this.nums=50;
}
}
public class Sub extends Base {
public int nums;
public int ages;
public void print(){
System.out.println("這里是Sub的方法");
}
public Sub(){
this.nums=100;
this.ages=10;
??? System.out.println("這里是sub構(gòu)造方法")
}
}

為什么最后nums的值是base類中的,不應(yīng)該是sub類中的100么
如果說(shuō)this是值當(dāng)前對(duì)象,那在sub的構(gòu)造方法里的this.nums=100,不應(yīng)該是base類中的nums么,可是最后的結(jié)果是basr類里的nums=50

正在回答

3 回答

這是因?yàn)槟阍赟ub類重新定義了一個(gè)新的成員變量nums,你試試在sub類中將public int nums;注釋掉,結(jié)果就正常了。這里涉及到兩個(gè)類中同名變量的問(wèn)題,即使兩個(gè)類中變量名相同,但任然認(rèn)為這是兩個(gè)不同量。而且Sub已經(jīng)繼承了Base類的成員變量,你完全沒(méi)必要再在Sub類中進(jìn)行聲明。

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

我也是初學(xué),先不說(shuō)代碼的設(shè)計(jì)意圖,純粹讀代碼但是我覺(jué)得這個(gè)應(yīng)該就是base中的初值,也就是0。如果你想讓他成為100,那么sub構(gòu)造方法應(yīng)該是靜態(tài)的,這樣才會(huì)加載為100的初值。你的代碼有語(yǔ)法錯(cuò)誤,我試試改改,驗(yàn)證下我的猜想。

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

如果訪問(wèn)父類的屬性,應(yīng)該使用super關(guān)鍵字,比如super.nums

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

舉報(bào)

0/150
提交
取消
Java入門第二季
  • 參與學(xué)習(xí)       531261    人
  • 解答問(wèn)題       6327    個(gè)

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

進(jìn)入課程

關(guān)于java里的父類引用子類

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

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

幫助反饋 APP下載

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

公眾號(hào)

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