組成和聚合

類和對象可以相互關聯。繼承描述了一種“IS A”關係。獅子是一種動物。這種關係很容易用繼承來表達,其中Animal父類是Lion子類。但並不是世界上的每一種關係都可以這樣恰當地描述。比如鍵盤肯定和電腦有關係,但它不是電腦。手跟人有關係,但又不是人。這些案例代表了一種不同類型的關係——不是“IS A”,而是“HAS A”。手不是人,而是人有手。鍵盤不是電腦,但電腦有鍵盤。“有一個”. 這些概念之間的區別在於關係的“嚴格性”。讓我們舉一個簡單的例子:我們有一個Car. 每輛車都有發動機。此外,每輛車都可以載客。Engine engine字段和字段之間的根本區別是什麼Passenger[] passengers?如果乘客A坐在車內,那並不意味著乘客BC不能在車內。一輛車可以容納多名乘客。更重要的是,所有乘客都可以下車,但它仍將繼續平穩運行。Car類和數組之間的關係Passenger[] passengers不太嚴格。它被稱為聚合。這是關於此主題的一篇好文章:類(對象)之間的關係. 它提供了另一個聚合的好例子。假設我們有一個Student代表一個學生的班級,一個StudentGroup代表一組學生的班級。學生可以是物理俱樂部、星球大戰學生粉絲俱樂部或喜劇俱樂部的成員。組合是一種更嚴格的關係。使用組合時,一個對像有另一個對象,但它不能屬於同類型的另一個對象。最簡單的例子是汽車發動機。如果汽車有發動機,那麼該發動機不能屬於另一輛汽車。如您所見,該關係比Car和的關係嚴格得多Passengers類之間的關係。 繼承、組合和聚合 - 4