例子、理解不当之处,还请指正
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 继承(面向对象)