課程
/后端開(kāi)發(fā)
/Java
/Java入門第二季 升級(jí)版
Telphone tel = new CellPone();
2015-08-09
源自:Java入門第二季 升級(jí)版 10-3
正在回答
這就是多態(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(); }
Ngu_smy 提問(wèn)者
解釋的很清楚,學(xué)習(xí)了,謝謝大佬
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開(kāi)發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
3 回答為什么要用父類的引用指向子類的對(duì)象?
3 回答為什么要用父類的引用指向?qū)ο螅?/p>
1 回答父類引用指向子類對(duì)象。
2 回答多態(tài)的好處是什么?父類引用指向子類對(duì)象的好處是什么?
2 回答父類的引用可以指向子類的對(duì)象什么意思?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-08-09
這就是多態(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è)甚至更多呢
所以用多態(tài)可以這么寫
2018-04-02
解釋的很清楚,學(xué)習(xí)了,謝謝大佬