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

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

一個(gè)困惑我?guī)滋觳沤鉀Q的看似簡(jiǎn)單的問題,明白了對(duì)多態(tài)理解更深了一點(diǎn)

父類:
public?class?Animal?{
?String?name="動(dòng)物";?
}

子類:
public?class?Dog?extends?Animal{
?String?name="外狗";
?
?public?Dog(){???
??name="內(nèi)狗";
?}
}

測(cè)試類:
public?class?TestAnimal?{
?public?static?void?main(String[]?args)?{
??Animal?dog=new?Dog();
??System.out.println(dog.name);
?}
}

問題:
測(cè)試類結(jié)果為:
動(dòng)物
但是當(dāng)我注釋掉?子類String?name="外狗";這行代碼
測(cè)試類結(jié)果為:
內(nèi)狗
為什么?


正在回答

8 回答

子類:
public?class?Dog?extends?Animal{
?String?name="外狗";?//?這是定義了一個(gè)新的變量name,下面的name也是修改的這個(gè)新的變量,而不是父類中定義的那個(gè)name
??
?public?Dog(){???
??name="內(nèi)狗";
?}
}

如果你把自類中String name改成String name1,運(yùn)行結(jié)果會(huì)是 內(nèi)狗。


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

Animal?dog=new?Dog();

System.out.println(dog.name);

//Dog調(diào)用的是父類中的name屬性或著(子類中繼承或重寫的父類屬性),

String?name="外狗";?//?這是定義了一個(gè)新的變量name,不能被父類引用


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

錯(cuò)了? 沒弄清楚

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

初始化順序 父類 》》子類?????? 父類對(duì)象》子類對(duì)象》構(gòu)造方法

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

????? 正如我采納答案所說,我在子類定義了一個(gè)String name="外狗",明確了這個(gè)變量是子類的變量,它會(huì)根據(jù)多態(tài)的規(guī)則,子類同名屬性并不會(huì)覆蓋父類屬性,而是都存在的(存在哪里?內(nèi)存這塊我還不清楚),所以子類構(gòu)造函數(shù)初始化了子類的屬性name為“內(nèi)狗”,而Anima dog=new Dog(),? dog還是用的父類的屬性name="動(dòng)物"

???? 而我沒有明確定義String name=“外狗”這句,子類構(gòu)造函數(shù)默認(rèn)用的name是父類的name(很容易就以為初始化的是子類的屬性name), name="內(nèi)狗"這行等同于super.name="內(nèi)狗"。

????想更清楚的話,可以去看看這個(gè)博客 http://blog.csdn.net/l_b_h_w/article/details/52665231

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

米柚

多謝~受益了!
2017-02-19 回復(fù) 有任何疑惑可以回復(fù)我~
#2

ffs555

第一次運(yùn)行的結(jié)果不是外狗嗎?dog指向的不是子類的屬性name嗎?為什么是父類的name?
2017-02-23 回復(fù) 有任何疑惑可以回復(fù)我~
#3

ffs555

Anima dog=new Dog(), 為什么dog還是用的父類的屬性name="動(dòng)物"? 不是子類才對(duì)嗎?
2017-02-23 回復(fù) 有任何疑惑可以回復(fù)我~

對(duì)象和引用這部分我弄的有點(diǎn)不清楚 ,請(qǐng)?jiān)斀?/p>

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

為什么我寫了一個(gè)結(jié)果還是沒變呢?

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

這是為什么呢。。。

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

舉報(bào)

0/150
提交
取消

一個(gè)困惑我?guī)滋觳沤鉀Q的看似簡(jiǎn)單的問題,明白了對(duì)多態(tài)理解更深了一點(diǎn)

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

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

幫助反饋 APP下載

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

公眾號(hào)

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