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

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

老師,為啥總是 使用父類對象實例化子類?實際應(yīng)用中是不是子類對象實例化子類更好?

老師,為啥總是 使用父類對象實例化子類??我想主要是為了教學(xué),對么?

那么,在真實的實際應(yīng)用設(shè)計中,是不是更多的是使用:類對象(類型)實例化子類更好些?這樣就能充分的使用子類的所有特殊成員了。。。

正在回答

7 回答

多態(tài)解決的是動態(tài)綁定的問題。所謂動態(tài)綁定,舉個例子就是animal.say(),但是不同的不同的animal比如dog,cat,pig它們的叫聲是不一樣的,animal.say()能識別出不同的動物,從而調(diào)用其各自的叫聲。一個程序要靈活,很大程度依靠動態(tài)綁定,延遲決策到運行時。

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

慕移動2313051

"animal.say()能識別出不同的動物",怎么識別???一個父類指針不也只能指向一個子類對象嗎?要想識別不同的動物,不也得定義多個父類指針,然后分別指向不同的子類對象嗎?
2018-06-07 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Alex_ZM 回復(fù) 慕移動2313051

把定義好的多個父類指針*animal1,*animal2,..., *animalN放到animal類型的數(shù)組里,for循環(huán)調(diào)用
2019-01-04 回復(fù) 有任何疑惑可以回復(fù)我~

集中存儲,區(qū)別對待,區(qū)分調(diào)用,子類創(chuàng)建對象后,所繼承的所有父類們都可以在這個子類中獲取想要的數(shù)據(jù)的,然后調(diào)用

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

一個父類實現(xiàn)多個子類的命令,厲害!

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

也有些困惑

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

Father *p_children = new Children(xxx)? 是用父類指針指向子類對象,不是“使用父類對象實例化子類”。 eg:

處理函數(shù)? Action(Animal *p);

定義對象是用子類? Pig pig????????Horse horse...

開始活動??? Action(&pig)???? Action(&horse)...???? 這時只需傳子類地址到Action函數(shù),不必寫區(qū)別處理Pig, Horse...的函數(shù)了。? 大概思想如此,建議看看多態(tài)方面的內(nèi)容!

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

使用父類對象實例化子類

是為了實現(xiàn)多態(tài)! ? 如此場景:

? ? ?只需向一群動物發(fā)一條指令:開始活動。 豬會睡覺、馬會跑、狗會叫... ? ? ? 使用父類指針,一條指令就夠了,使用子類指針,每種動物都得區(qū)別對待!

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

UFO的青春

同學(xué)你好,我還是有個疑問,那么你這個思想代碼如何實現(xiàn)呢? 比如Father *p_children = new Children(xxx); 父類指針也只能實例化一種動物??? 按你這么來,豈不也要分別進行豬,馬,狗的父類實例化? 恕我愚昧,問下
2016-04-08 回復(fù) 有任何疑惑可以回復(fù)我~
#2

丿琴丶殤 回復(fù) UFO的青春

你這樣就可以直接用p指向Father的各個子類(的成員函數(shù))了,不然還要重新實例化子類的指針來分別指向各自的成員函數(shù)
2016-08-28 回復(fù) 有任何疑惑可以回復(fù)我~

路過~

既然使用了繼承機制,就意味著可能會有多個子類去繼承父類的內(nèi)容,繼而在不同的子類中增添其獨有的部分。童鞋你的意思應(yīng)該是用父類聲明,建立子類的實例吧。那么聲明類型是父類,也就代表它能夠根據(jù)需要指向所需的子類實例。

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

chris6179 提問者

不是,我需要的是 用 子類 聲明,建立子類的實例。 如代碼: Children *p_children = new Children(xxx); 而不是視頻教程中的:Father *p_children = new Children(xxx);
2016-01-09 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Jabin_Aronvoy 回復(fù) chris6179 提問者

要讓p_children能夠使用Children的獨有方法,只需轉(zhuǎn)換回Children即可。那么倘若現(xiàn)在有Children2也繼承了Father,我們在不清楚一個對象最終會是Children還是Children2的時候直接聲明為Father才是最合適的。實現(xiàn)動態(tài)綁定才是我們做這樣的聲明的意義。如果你確定是要創(chuàng)建一個Children對象,那自然可以像Children *p_children = new Children(xxx);這樣聲明和實例化對象,但實際上即使出現(xiàn)這樣的情況,我們也會習(xí)慣性地用父類去聲明,為的是提防以后可能會依舊會會發(fā)生的動態(tài)綁定。
2016-01-09 回復(fù) 有任何疑惑可以回復(fù)我~
#3

一二三兮 回復(fù) Jabin_Aronvoy

"要讓p_children能夠使用Children的獨有方法,只需轉(zhuǎn)換回Children即可。" 請問如何轉(zhuǎn)換回Children?
2016-08-26 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C++遠征之多態(tài)篇
  • 參與學(xué)習(xí)       66225    人
  • 解答問題       329    個

本教程將帶領(lǐng)大家體會面向?qū)ο笕筇匦灾械亩鄳B(tài)特性

進入課程

老師,為啥總是 使用父類對象實例化子類?實際應(yīng)用中是不是子類對象實例化子類更好?

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

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

幫助反饋 APP下載

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

公眾號

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