關聯關系(最弱的一種關系):
關聯關系也不是臨時性的,一般是長期性的,而且雙方的關系一般是平等的。關聯可以是單向、雙向的。表現在代碼層面,為被關聯類B以類的屬性形式出現在關聯類A中,也可能是關聯類A引用了一個類型為被關聯類B的全局變量。
例如學生和老師
老師要講課, 這 是一個方法, 要傳個參數進去, 參數是學生對象
繼承關系(避免多重繼承)
繼承指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,並可以增加它自己的新功能的能力。在Java中繼承關系通過關鍵字extends明確標識,在設計時一般沒有爭議性。
可以說成,什么是一種什么。
例如主類父類是運動員,然后運動員又有球類運動員,球類運動員又有乒乓球運動員。(乒乓球運動員是一種球類運動員,球類運動員是一種運動員)
聚合關系(聚集, 組合)
聚合是關聯關系的一種特例,它體現的是整體與部分的關系。此時整體與部分之間是可分離的,它們可以具有各自的生命周期,部分可以屬於多個整體對象,也可以為多個整體對象共享。
可以考慮成,什么是什么的一部分
例如球隊,里面有個隊長,他既是足球隊隊長也是籃球隊隊長。某個隊員,既是籃球隊員也是乒乓球隊員。
聚集:構成這個類的這部分可以是這個類的, 也可以是另外一個類的,
組合:每一部分只屬於一個類
實現關系
實現指的是一個class類實現接口(可以是多個)的功能,實現是類與接口之間最常見的關系。在Java中此類關系通過關鍵字implements明確標識。
接口:只管定義方法, 怎么實現由子類去做
例如開車(接口)這個方法,A類可以實現, B類也可以實現。