面向对象功能复用最常见的技术是类继承和对象组合。 如果继承下来的实现不适合解决新问题,则父类必须重写或者被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。 一个可用的解决方法就是只继承抽象类,因为抽象类通常提供较少的实现。