聚合与组合都是表示整体和个体的关联关系,他们之间最大的区别在于子类被父类控制的程度。组合的父子类关系比聚合要强。

组合: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();
}

组合和聚合的区别,通俗易懂。相关推荐

  1. java类的聚合 组合定义_Java里组合和聚合的概念及其实现

    Java里组合和聚合的概念及其实现 (一)概念 组合:组合是整体与部分的关系, 并且部分不可以离开整体而单独存在. 聚合:整体与部分的关系, 并且部分可以离开整体而单独存在. 在实际写代码时: 组合方 ...

  2. 黑马程序员——java语言基础——组合,关联,聚合的区别

    类间关系 在类图中,除了需要描述单独的类的名称.属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义.在UML类图中,关系用类框之间的连 ...

  3. java鸟和翅膀组合关系怎么写_关联、聚合、组合和依赖之间区别

    一.关联(Association) 指类与类之间的关系,它使得一个类知道另一个类的属性和方法.关联可以是双向的,也可以是单向的.在Java语言中,关联关系一般使用成员变量来实现.采用实线箭头表示 例如 ...

  4. 组合和聚合举例说明_聚合与组合的区别

    据作者的个人理解,关系的强度:依赖 依赖  意在说明2个类存在关系,一般Java语言中体现为局域变量.方法的形参,或者对静态方法的调用: 关联一般是一个类持有另一个类作成员变量来体现,只说明类与类之前 ...

  5. java 组合 聚合_关联,组合和聚合-用Java实现

    我对关联,聚合和组成有些困惑.即使大量的网站和论坛讨论了此主题,但在阅读其中一些内容后,我变得更加困惑. 我想知道以下是否正确: 1.)聚集-如果整体被破坏,将存在.例如,一个引擎可以有或没有汽车. ...

  6. 【面试问题】进程和线程的区别——通俗易懂

    1. "进程"是什么 1.2 管理进程 1.3 内存管理 1.4 进程间通信 2. 线程是什么 3.进程和线程的区别 1. "进程"是什么 在对比"进 ...

  7. CPU与GPU区别 通俗易懂

    为什么二者会有如此的不同呢?首先要从CPU和GPU的区别说起. CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型, ...

  8. 组合和聚合举例说明_聚合关系和组合关系示例

    合成关系分为 聚合(aggregation) 关系和组合(composition) 关系, 在大部书中都讲得很抽像模糊.按我理解,这两种合成方式在代码中的表现应如下: type TOperate = ...

  9. 端口汇聚和端口聚合的区别

    端口汇聚是将2个或多个物理端口组合在一起成为一条逻辑的路径从而增加在交换机和网络节点之间的带宽,将属于这几个端口的带宽合并,给端口提供一个几倍于独立端口的独享的高带宽.简单来说就是将多个端口绑定成一个 ...

最新文章

  1. Dos攻击工具(ZAmbIE)
  2. Winform开发框架中工作流模块的业务表单开发
  3. Flex4将对象转换成json串
  4. 网络配置——Linux运维基础
  5. dom解析和生成XML文件
  6. 从默认的 _id 字段中,取得时间信息
  7. gulp,grunt,bower,feoman,fis 简单说明
  8. Python3——简单的UDP实例
  9. 浅析云控平台画面传输的视频流方案
  10. 机器学习算法总结之XGBoost(下) 实战与调参
  11. ARM32/ARM64函数调用规则
  12. The GenerateResource task failed unexpectedly. a generic error occured in GDI+
  13. 机器学习基础:K近邻算法(Machine Learning Fundamentals: KNN)
  14. linux环境搭建之tftp tftpd服务器
  15. 很久以前写的lumaqq安装教程
  16. 关于jenkins自动化打包探索
  17. TestCenter测试管理工具功能详解十(O)
  18. 有了它,将大大丰富VR内容,3D VR摄像机Vuze VR开启预定
  19. 安全生产管理云执法平台方案
  20. 陳三甲网络笔记:即使你摆正了姿势,也不一定能赚到钱!

热门文章

  1. 高级数据结构与算法 | 红黑树(Red-Black Tree)
  2. C++实现一个简易的线程池
  3. 你对5G技术“低延时”可能有些误解——专访虎牙5G 首席架构师林正显
  4. 音视频技术开发周刊(第120期)
  5. Facebook构建高性能Android视频组件实践之路
  6. 【git重案组】如何逃避git blame的追踪?
  7. AI繁荣下的隐忧——Google Tensorflow安全风险剖析
  8. 2017第四季度移动行业数据报告
  9. VMware虚拟机网络模式详解 NAT模式
  10. MySQL InnoDB Cluster安装