面向对象——对继承、关联、聚合、组合、依赖的理解

例子、理解不当之处,还请指正

1、继承(泛化)  

关系:a 继承自b,a is b

就像图中所画,Benz,Audi,Lamborghini都继承自Car,都有轮子(wheel),都可以前进,与停止。

Benz is a car.

Audi is a car.

Lamborghini is a car.

2、关联

关系:a has b

 

3、聚合

关系:a has b

           整体部分不负责局部对象的销毁,二者的生命周期没有关联

4、组合

关系:a has b

           整体部分负责局部对象的销毁

 

 5、依赖

关系:a use b

继承体现的是类与类之间的纵向关系
其他四种体现的是类与类之间的横向关系


耦合强弱:
  依赖 < 关联 < 聚合 < 组合


从语义上来看
  继承(A is B)
  关联、聚合、组合(A has B)
  依赖(A use B)


当组合与依赖结合时,可以替代继承
  组合+依赖(基于对象) vs 继承(面向对象)

原文地址:https://www.cnblogs.com/chinxi/p/7349768.html