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

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

為什么要用父類引用指向子類對(duì)象?與什么用處?

Telphone tel = new CellPone();

正在回答

2 回答

這就是多態(tài)

父類引用變量引用子類時(shí)可以調(diào)用子類覆蓋的方法。

舉個(gè)例子:

假設(shè)有類Cat,類Dog,類Duck。。。他們都有一個(gè)繼承自父類Animal的方法eat(),各自覆蓋了這個(gè)方法,因?yàn)樨埞辐喅韵嗖煌?/p>

現(xiàn)在。我有另一類,里面有個(gè)方法處理各種動(dòng)物的吃相all_eat()

當(dāng)然你可以這么寫

//?給每個(gè)類型都定義一個(gè)對(duì)象的引用
//?需要用到某個(gè)類型時(shí)給其創(chuàng)建對(duì)象
public?Cat?cat?=?null;
public?Dog?dog?=?null;
public?Duck?ducl?=?null;
public?void?all_eat(){
????if(cat!=null){
????????cat.eat();
????}
????if(dog!=null){
????????dog.eat();
????}
????if(duck!=null){
????????duc.eat();
????}
}

這樣寫是不是比較麻煩,如果類型有十幾個(gè)甚至更多呢

所以用多態(tài)可以這么寫

public?void?all_eat(Animal?animal){
????//?你可以把?Cat,?Dog,?Duck?任意一個(gè)的對(duì)象作為參數(shù)傳進(jìn)來(lái)
????//?因?yàn)樗麄兌际茿nimal的子類,并且接下來(lái)animal.eat()會(huì)
????//?根據(jù)實(shí)際對(duì)象的類型去調(diào)用相應(yīng)的eat()方法。這就是多態(tài)
????animal.eat();
}


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

Ngu_smy 提問(wèn)者

非常感謝!
2015-08-09 回復(fù) 有任何疑惑可以回復(fù)我~

解釋的很清楚,學(xué)習(xí)了,謝謝大佬

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

舉報(bào)

0/150
提交
取消

為什么要用父類引用指向子類對(duì)象?與什么用處?

我要回答 關(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)