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

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

Animal obj2 = new Dog();

父類的引用指向子類對象 怎么理解呢 ? 這和一般的 ?Dog obj2 = new Dog(); (我習慣了這樣寫法),有什么么實際意義和應用呢?

正在回答

4 回答

Aninal animal=new Animal();

Aniamal animal=new Dog();

Dog dog=new Dog();

這三種的意思你應該都清楚,不是所有的東西的存在都一定會有什么實際的意義和應用,如果非得說的話,我只能說增加了編程代碼的多樣性,你可以有多重選擇,但相比起來其實優勢差不多,只是創建的時候意義不一樣,這就是多樣性。

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


這里是java三種多態中的 引用多態,與Dog obj2 = new Dog(); 是完全不同的,假如子類中重寫了父類中的方法show(或者沒有寫)

Animal obj2 = new Dog();這里是父類的引用指向子類對象,這樣的話子類就可的話我們利用

obj2.show();就可以調用子類中重寫的方法show(如果沒有重寫,則調用繼承的方法show),但是子類中特有的方法是不能調用的


另一個Animal obj2 = new Aniaml();也就是你說的Dog obj2 = new Dog();這里是父類的引用指向父類對象,利用obj2.父類的中的方法,就可以調用父類中的所有方法

希望你多理解,在看下那一的視頻,希望可以幫到你



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

DH111

Animal obj2 = new Animal();跟Dog obj2 = new Dog();怎么相同呢,按你所舉的例子:假如子類中重寫了父類中的方法show(或者沒有寫);那么我用Dog obj2 = new Dog();不是一樣可以通過obj2.show();調用子類中重寫后的方法嗎;所以才如帖主所問:Animal obj2 = new Dog();有什么么實際意義和應用呢 ?同求,望大神解疑。
2015-07-31 回復 有任何疑惑可以回復我~

鄙人認為:Animal obj2 = new Dog這樣的寫法主要是為了以后接口的創建,便于設計模式的實現,以及代碼的復用

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

java的多態,你可以多搜一下資料慢慢體會一下,剛剛開始的確有點難

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

舉報

0/150
提交
取消

Animal obj2 = new Dog();

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

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

幫助反饋 APP下載

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

公眾號

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