http://zyjwy02.iteye.com/blog/232838
继承 和组合 都是实现类重用 的手段,何时用继承何时用组合?
继承表示“is a”的关系,继承是对已有的类做一番改造,以此获得一个特殊的版本。即将一个较为抽象的类改造成能适用于某些特定需求的类。组合表示“has a”的关系,如果两个类之间有明显的整体/部分的关系,适合用组合,比如People和Arm类。将Arm类作为People类的一个私有属性。
面对扩展问题时,如果选择使用继承,则要考虑除了需要重写关注的方法外,是否还要看看有些方法也被继承下来了,而这些方法如果不重写的话是有害的。如果使用组合则可以避免这种问题。