一、类与类的关系
关注公众号“轻松学编程”了解更多。
-
is-a 继承
继承是指一个类(称为子类、子接口)继承另外一个类(称为父类、父接口)的功能, 并可以增加它自己的新功能的能力。
-
has-a 关联/聚合/合成
关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友, 这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的, 一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。 表现在代码层面,为被关联类B以类的属性形式出现在关联类A中, 也可能是关联类A引用了一个类型为被关联类B的全局变量。 聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。 此时整体与部分之间是可分离的,它们可以具有各自的生命周期, 部分可以属于多个整体对象,也可以为多个整体对象共享。 比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、 驱护舰艇、舰载飞机及核动力攻击潜艇等。表现在代码层面, 和关联关系是一致的,只能从语义级别来区分。 组合也是关联关系的一种特例,它体现的是一种contains-a的关系, 这种关系比聚合更强,也