<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 1, 文章 - 0, 評論 - 0, 引用 - 0
    數據加載中……

    組合與繼承到底有什么區別?

    2016年12月27日14:45:26
    =====================
    1、在新的class中使用既有的class,這中方法稱之為"組合"。但是這種重用方式只是很單純的重復運用以有的代碼功能,而非重復運用其形式。
    2、讓新的class成為既有class的一類,并且根據需要加入新的功能,而無須更動原有class,這種方法稱之為"繼承"。

    如果B是A的一種 才用繼承

    PS:
    繼承是說“我父親在家里給我幫了很大的忙”。 
    組合是說“我請了個老頭在我家里干活”。 
    太有才了

    組合是在一類類中引用另一個類。生成另一個類的實例。 
    而繼承只是繼承了父類的變量和方法。 
    區別: 
    使用組合可以用到另一個類中私有的變量和方法,而繼承就不可以用到父類的私有的變量和方法了 
    他們都有各自的好處,要靈活的運用。

    類繼承與對象組合是實現類復用的兩種最常用的技術。

    一:繼承

      繼承是Is a 的關系,比如說Student繼承Person,則說明Student is a Person。繼承的優點是子類可以重寫父類的方法來方便地實現對父類的擴展。

      繼承的缺點有以下幾點:

      1:父類的內部細節對子類是可見的。

      2:子類從父類繼承的方法在編譯時就確定下來了,所以無法在運行期間改變從父類繼承的方法的行為。

      3:子類與父類是一種高耦合,違背了面向對象思想。

          4 :繼承關系最大的弱點是打破了封裝,子類能夠訪問父類的實現細節,子類與父類之間緊密耦合,子類缺乏獨立性,從而影響了子類的可維護性。

          5:不支持動態繼承。在運行時,子類無法選擇不同的父類。

    二:組合

          1:不破壞封裝,整體類與局部類之間松耦合,彼此相對獨立。

          2:具有較好的可擴展性。

          3:支持動態組合。在運行時,整體對象可以選擇不同類型的局部對象。


    組合是has a的關系 
    繼承是is a的關系


    引用一句老話應該更能分清繼承和組合的區別:組合可以被說成“我請了個老頭在我家里干活” ,繼承則是“我父親在家里幫我干活"。


    總結

    1.除非考慮使用多態,否則優先使用組合。
    2.要實現類似”多重繼承“的設計的時候,使用組合。
    3.要考慮多態又要考慮實現“多重繼承”的時候,使用組合+接口。

    posted on 2016-12-27 15:27 zyuan1991 閱讀(247) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产免费AV片在线观看播放| A级毛片内射免费视频| 亚洲精品无码你懂的| 永久黄网站色视频免费观看 | 久久国产乱子伦精品免费看| 一级毛片a免费播放王色电影| 国产a视频精品免费观看| 国产精品亚洲专区在线观看| 国产免费观看青青草原网站| 最近免费2019中文字幕大全| 久久99国产亚洲精品观看| 久久成人免费播放网站| 亚洲精品午夜在线观看| 国产精品免费观看久久| 久久精品国产亚洲AV天海翼| va亚洲va日韩不卡在线观看| 一级人做人爰a全过程免费视频| 污视频在线观看免费| 亚洲妇女水蜜桃av网网站| 成人性生交大片免费看午夜a| 亚洲午夜久久久久久久久电影网| 精品亚洲成A人无码成A在线观看| 国产成人精品免费大全| 亚洲精品无码MV在线观看| 日本一卡精品视频免费 | 一区二区三区观看免费中文视频在线播放 | 亚洲国产a∨无码中文777| 日本高清不卡aⅴ免费网站| 久久丫精品国产亚洲av不卡| 无人影院手机版在线观看免费| 国产AV无码专区亚洲AV男同| 无码成A毛片免费| 亚洲综合精品第一页| 亚洲精品国自产拍在线观看| 免费无码成人AV在线播放不卡| 中文字幕精品亚洲无线码二区| 亚洲AV无码专区在线电影成人 | 国产线视频精品免费观看视频| 在线免费观看国产视频| 成人无码视频97免费| 亚洲国产日韩在线一区|