• <track id="yjx63"><span id="yjx63"></span></track>
  • <track id="yjx63"></track>

  • 衡水天泰計算機培訓學校
    JAVA技術
    當前位置:首頁 > 學習專區 > JAVA技術 >

    Java學習之:類與類之間的關系

    來源:衡水北大青鳥 ????發布時間:2017-04-11 10:49 ????點擊:

    繼承(inheritance)

    繼承指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力。

    繼承是is-a的關系,是一種用于表示特殊與一般的關系。

    如果說XXX是XXX,沒人鄙視你的話,繼承關系就成立了,如:

     

     

    男人是人,說得通。

    要是反過來,人是男人,這世界就亂了。

     

    實現(implement)

    指的是一個類實現接口的功能。

     

     

    依賴(dependence)

    簡單的理解,就是類A使用到了類B,而這種使用關系是具有偶然性的、臨時性的、非常弱的,但是類B的變化會影響到類A。

    比如某人要過河,需要借用一條船,此時人與船之間的關系就是依賴。

    表現在代碼層面,為類B作為參數被類A在某個方法中使用。如:

     

     

    關聯

    關聯體現的是兩個類,或者類與接口之間語義級別的一種強依賴關系,比如我和我的朋友。這種關系比依賴更強,不存在依賴關系的偶然性,關系也不是臨時性的,一般是長期性的,而且雙方的關系一般是平等的,關聯可以是單向或者雙向的。表現在代碼層面,為被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯類A引用了一個類型為被關聯類B的全局變量。

     

     

     

    聚合(aggregation)

    聚集是關聯關系的一種特例,它體現的是整體與部分,是擁有的關系,即has-a的關系。

    此時整體與部分之間是可分離的,它們可以具有各自的生命周期,部分可以屬于多個整體的對象,也可以為多個整體對象共享,比如球員與球隊、教練與球隊的關系。

    表現在代碼層面,和關聯關系是一致的,只能從語義級別來區分。

     

                       

    怎么理解呢?

    所謂整體與部分,小貝是球隊A人一部分,沒錯吧。

    但同時,小貝是不是也可以是其它球隊或機構的一分子呢?答案是肯定的。

     

    組合

    組合也是關聯關系的一種特例,它體現的是一種contains-a的關系,這種關系比聚合更強,也稱為強聚合。

    它同樣體現整體與部分間的關系,但此時整體與部分是不可分的,整體的生命周期結束也就意味著部分的生命周期結束,比如小貝和他的飛毛腿。表現在代碼層面,和關聯關系是一致的,只能從語義級別來區分。

     

     

    聚合,XXX是XXX的一部分。

    組合,XXX是XXX必不可少的一部分,是聚合的加強版。

     

    總結

    對于繼承、實現這兩種關系沒多少疑問,它們體現的是一種類與類,或者類與接口間的縱向關系。

    其它的四者關系則體現的是類與類,或者類與接口間的引用,是橫向關系,是比較難區分的。有很多事物間的關系要想準備定位是很難的,前面也提到,這幾種關系都是語義級別的,所以從代碼層面并不能完全區分各種關系。

    但總的來說,后幾種關系所表現的強弱程度依次為:組合>聚合>關聯>依賴。

    掃一掃 加關注 精彩資訊在這里!

    技能認證

    OSTA技能證書,全國可查,真實可信

    多項熱門專業自由選擇

    豐富的專業課程設置,完全自由選擇

    畢業推薦就業

    5重就業保障體系,4項就業指導服務

    學校地址

    最方便的乘車路線

    在線咨詢

    來校講解答疑

    在線咨詢

    399入學禮包

    報名熱線

    0318-2888080

    • 版權所有2015~2021 衡水天泰計算機培訓學校
      北大青鳥課程咨詢電話:0318-2888080 官方網址:www.lv2012gf.com
      地址:河北省衡水市育才街與勝利交叉口南行200米路東 郵編:053000
      (網站客服咨詢QQ:3142643279)
    • 網站備案/許可證號:冀ICP備19035316號-1
    日韩无码国产精品97精品|国产人妻无码一区二区三区动态|欧美97欧美色伦综合视频在线看|人妻少妇中文字幕乱码高清|

  • <track id="yjx63"><span id="yjx63"></span></track>
  • <track id="yjx63"></track>