繼承與聚合關(guān)于如何在面向?qū)ο蟮南到y(tǒng)中最好地?cái)U(kuò)展、增強(qiáng)和重用代碼,有兩個(gè)學(xué)派:繼承:通過(guò)創(chuàng)建子類(lèi)來(lái)擴(kuò)展類(lèi)的功能。重寫(xiě)子類(lèi)中的超類(lèi)成員以提供新功能。使方法抽象/虛擬,以便在超類(lèi)需要特定接口但對(duì)其實(shí)現(xiàn)不可知時(shí),強(qiáng)制子類(lèi)“填充空白”。聚合:通過(guò)接受其他類(lèi)并將它們組合成一個(gè)新類(lèi)來(lái)創(chuàng)建新功能。將公共接口附加到此新類(lèi),以便與其他代碼進(jìn)行互操作性。每種方法的好處、成本和后果是什么?還有其他選擇嗎?我看到這場(chǎng)辯論是定期出現(xiàn)的,但我認(rèn)為還沒(méi)有人問(wèn)到堆棧溢出問(wèn)題(盡管有一些相關(guān)的討論)。谷歌也令人驚訝地缺乏良好的搜索結(jié)果。
繼承與聚合
BIG陽(yáng)
2019-07-08 15:42:20