在學(xué)到設(shè)計(jì)原則"多組合,少繼承"時(shí),文中提到: 繼承的子類(lèi),實(shí)際上需要編譯期確定下來(lái)。而組合卻可以比繼承靈活得多,可以在運(yùn)行期才決定某個(gè)對(duì)象。我想問(wèn)一下,這里的編譯期和運(yùn)行期分別指什么意思?為什么通過(guò)組合就能在運(yùn)行期決定某個(gè)對(duì)象呢? 謝謝~
2 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
簡(jiǎn)單來(lái)說(shuō):A從B繼承,這一點(diǎn)是不能在運(yùn)行期改變的。也就是說(shuō),你New出來(lái)一個(gè)A對(duì)象,那么,他一定具有B對(duì)象的特性和行為(當(dāng)然不包括重寫(xiě)過(guò)的方法)。你在代碼編譯成執(zhí)行文件后,就不能改變了。
但是,如果A組合了一個(gè)B對(duì)象。你就可以在運(yùn)行時(shí)改變這一點(diǎn)。比如:你讓A抓著一個(gè)B的子類(lèi)而不是B來(lái)實(shí)現(xiàn)需要B完成的功能。這樣為你的系統(tǒng)提供了更大的靈活性。
- 2 回答
- 0 關(guān)注
- 708 瀏覽
添加回答
舉報(bào)
0/150
提交
取消