组合和聚合的区别,通俗易懂。
Posted 来老铁干了这碗代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合和聚合的区别,通俗易懂。相关的知识,希望对你有一定的参考价值。
聚合与组合都是表示整体和个体的关联关系,他们之间最大的区别在于子类被父类控制的程度。组合的父子类关系比聚合要强。
组合:part-of关系,父类拥有子类,子类不能独立于父类存在。
这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
下面代码的A类、B类之间的关系是组合关系
public class A {
void funcA() {
// ...
}
}
public class B {
A a;
a.funcA();
}
聚合:has-a关系,父类包含子类,子类可以独立于父类存在。
整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。
下面代码的A类、B类之间的关系是聚合关系
public class A {
void funcA() {
// ...
}
}
A a;
public class B {
a.funcA();
}
以上是关于组合和聚合的区别,通俗易懂。的主要内容,如果未能解决你的问题,请参考以下文章