一、对象的概念
1.1组合与聚合:
组合和聚合都属于关联关系的一种,只是额外具有整体-部分的意义。至于是聚合还是组合,需要根据实际的业务需求来判断。可能相同超类和子类,在不同的业务场景,关联关系会发生变化。只看代码是无法区分聚合和组合的,具体是哪一种关系,只能从语义级别来区分。聚合关系中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除。再者,多个整件可以共享同一个部件。组合关系中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除。而且,多个整件不可以同时共享同一个部件。这个区别可以用来区分某个关联关系到底是组合还是聚合。两个类生命周期不同步,则是聚合关系,生命周期同步就是组合关系。
1.2 如果子类只覆盖了基类的方法 这种是比较好的 是is-a的关系 可以完全用子类代替基类 但是如果子类自己实现了新的方法 那么就是is-like-a 这种不能用基类访问新添加的方法 所以不能说完全相同
原文:https://www.cnblogs.com/TheQi/p/13034410.html