Posted on 2011-11-29 09:37
陳小東 閱讀(2601)
評(píng)論(2) 編輯 收藏
繼承的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
新的實(shí)現(xiàn)很容易,因?yàn)榇蟛糠质抢^承而來(lái)的
很容易修改和擴(kuò)展已有的實(shí)現(xiàn)
缺點(diǎn)
打破了封裝,因?yàn)榛?lèi)向子類(lèi)暴露了實(shí)現(xiàn)細(xì)節(jié)
白盒重用,因?yàn)榛?lèi)的內(nèi)部細(xì)節(jié)通常對(duì)子類(lèi)是可見(jiàn)的
當(dāng)父類(lèi)的實(shí)現(xiàn)改變時(shí)可能要相應(yīng)的對(duì)子類(lèi)做出改變
不能在運(yùn)行時(shí)改變由父類(lèi)繼承來(lái)的實(shí)現(xiàn)
由此可見(jiàn),組合比繼承具有更大的靈活性和更穩(wěn)定的結(jié)構(gòu),一般情況下應(yīng)該優(yōu)先考慮組合。只
有當(dāng)下列條件滿(mǎn)足時(shí)才考慮使用繼承:
子類(lèi)是一種特殊的類(lèi)型,而不只是父類(lèi)的一個(gè)角色
子類(lèi)的實(shí)例不需要變成另一個(gè)類(lèi)的對(duì)象
子類(lèi)擴(kuò)展,而不是覆蓋或者使父類(lèi)的功能失效