14.13 小结
继承和组合都允许由已存在的类型创建新类型,两者都是在新类型中嵌入已存在的类型的子对象。然而,如果想重用已存在类型作为新类型的内部实现的话,我们最好用组合;如果想使新的类型和基类的类型相同(类型一样可确保接口一样),则应使用继承。如果派生类有基类的接口,它就能向上类型转换到这个基类,这一点对第15章中介绍的多态性很重要。
虽然通过组合和继承进行代码重用对于快速项目开发有帮助,但通常我们会希望在允许其他程序员依据它开发之前重新设计类层次。我们的类层次必须有这样的特性:它的每个类有专门的用途,它不能太大(包含太多不利于重用的功能),也不能太小(太小如不对它本身增加功能就不能使用)。