亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

Telphone tel = new CellPone();

正在回答

2 回答

這就是多態

父類引用變量引用子類時可以調用子類覆蓋的方法。

舉個例子:

假設有類Cat,類Dog,類Duck。。。他們都有一個繼承自父類Animal的方法eat(),各自覆蓋了這個方法,因為貓狗鴨吃相不同

現在。我有另一類,里面有個方法處理各種動物的吃相all_eat()

當然你可以這么寫

//?給每個類型都定義一個對象的引用
//?需要用到某個類型時給其創建對象
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();
????}
}

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

所以用多態可以這么寫

public?void?all_eat(Animal?animal){
????//?你可以把?Cat,?Dog,?Duck?任意一個的對象作為參數傳進來
????//?因為他們都是Animal的子類,并且接下來animal.eat()會
????//?根據實際對象的類型去調用相應的eat()方法。這就是多態
????animal.eat();
}


3 回復 有任何疑惑可以回復我~
#1

Ngu_smy 提問者

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

解釋的很清楚,學習了,謝謝大佬

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

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

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號