CodeGym /课程 /All lectures for ZH purposes /关联:组合和聚合

关联:组合和聚合

All lectures for ZH purposes
第 1 级, 课程 710
可用

组成和聚合

类和对象可以相互关联。继承描述了一种“IS A”关系。狮子是一种动物。这种关系很容易用继承来表达,其中 Animal父类是 Lion子类。但并不是世界上的每一种关系都可以这样恰当地描述。比如键盘肯定和电脑有关系,但 它不是电脑。手跟人有关系,但又不是人。这些案例代表了一种不同类型的关系——不是“IS A”,而是“HAS A”。手不是人,而是人有手。键盘不是电脑,但电脑有键盘。“有一个” . 这些概念之间的区别在于关系的“严格性”。让我们举一个简单的例子:我们有一个 Car. 每辆车都有发动机。此外,每辆车都可以载客。 Engine engine字段和字段之间的根本区别是什么 Passenger[] passengers?如果乘客 A坐在车内,那并不意味着乘客 BC不能在车内。一辆车可以容纳多名乘客。更重要的是,所有乘客都可以下车,但它仍将继续平稳运行。 Car类和数组之间的关系 Passenger[] passengers不太严格。它被称为 聚合。这是关于此主题的一篇好文章: 类(对象)之间的关系. 它提供了另一个聚合的好例子。假设我们有一个 Student代表一个学生的班级,一个 StudentGroup代表一组学生的班级。学生可以是物理俱乐部、星球大战学生粉丝俱乐部或喜剧俱乐部的成员。 组合是一种更严格的关系。使用组合时,一个对象有另一个对象,但它不能属于同类型的另一个对象。最简单的例子是汽车发动机。如果汽车有发动机,那么该发动机不能属于另一辆汽车。如您所见,该关系比 Car和的关系严格得多 Passengers类之间的关系。 继承、组合和聚合 - 4
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION