继承:通过扩展已有的类来获得新功能的代码重用方法
组合:新类由现有类的对象合并而成的类的构造方式
何时用继承?何时用组合?
1.如果二者间存在一个“是”的关系,并且一个类要对另外一个类公开所有接口,那么继承是更好的选择
2.如果二者间存在一个“有”的关系,那么首选组合
ps:
没有找到极其强烈无法辩驳的使用继承的利用的时候,一律采用组合
组合体现为现实层面,继承主要体现在扩展方面
如果并不是需要一个类的所有东西(包括接口和熟悉),那么就不需要使用继承,使用组合更好
如果使用继承,那么必须所有的都继承,如果有的东西你不需要继承但是你继承了,那么这就是滥用继承