繼承
指的是一個類(稱為子類酷宵、子接口)繼承另外的一個類(稱為父類亥贸、父接口)的功能,并可以增加它自己的新功能的能力浇垦,繼承是類與類或者接口與接口之間最常見的關(guān)系炕置;在Java中此類關(guān)系通過關(guān)鍵字extends明確標識,在設計時一般沒有爭議性男韧;
注意:實心線條朴摊,實心三角箭頭
實現(xiàn)
指的是一個class類實現(xiàn)interface接口(可以是多個)的功能;實現(xiàn)是類與接口之間最常見的關(guān)系此虑;在Java中此類關(guān)系通過關(guān)鍵字implements明確標識甚纲,在設計時一般沒有爭議性;
注意:虛線線條朦前,實心三角箭頭
依賴
可以簡單的理解介杆,就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的韭寸、春哨、臨時性的、非常弱的恩伺,但是B類的變化會影響到A赴背;比如某人要過河,需要借用一條船晶渠,此時人與船之間的關(guān)系就是依賴凰荚;表現(xiàn)在代碼層面,為類B作為參數(shù)被類A在某個method方法中使用褒脯;
注意:虛心線條便瑟,實心普通箭頭
關(guān)聯(lián)
他體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強依賴關(guān)系憨颠,比如我和我的朋友胳徽;這種關(guān)系比依賴更強积锅、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的养盗,一般是長期性的缚陷,而且雙方的關(guān)系一般是平等的、關(guān)聯(lián)可以是單向往核、雙向的箫爷;表現(xiàn)在代碼層面,為被關(guān)聯(lián)類B以類屬性的形式出現(xiàn)在關(guān)聯(lián)類A中聂儒,也可能是關(guān)聯(lián)類A引用了一個類型為被關(guān)聯(lián)類B的全局變量虎锚;
注意:實心線條,實心普通箭頭
聚合
聚合是關(guān)聯(lián)關(guān)系的一種特例衩婚,他體現(xiàn)的是整體與部分窜护、擁有的關(guān)系,即has-a的關(guān)系非春,此時整體與部分之間是可分離的柱徙,他們可以具有各自的生命周期,部分可以屬于多個整體對象奇昙,也可以為多個整體對象共享护侮;比如計算機與CPU、公司與員工的關(guān)系等储耐;表現(xiàn)在代碼層面羊初,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分什湘;
組合
組合也是關(guān)聯(lián)關(guān)系的一種特例长赞,他體現(xiàn)的是一種contains-a的關(guān)系,這種關(guān)系比聚合更強禽炬,也稱為強聚合涧卵;他同樣體現(xiàn)整體與部分間的關(guān)系勤家,但此時整體與部分是不可分的腹尖,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;比如你和你的大腦伐脖;表現(xiàn)在代碼層面热幔,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分
總結(jié)
完讼庇。
博客搬家:大坤的個人博客
歡迎評論哦~