我favor composition over inheritance
在设计模式中一次又一次地听到这个。引用的一些原因是
1)Inheritance is strongly coupled where as composition is loosely coupled
2) Inheritance is compile time determined where as composition is run-time
3)Inheritance breaks encapsulation where as composition does not
4) anything else I am not aware of
对于像我这样的初学者来说,通过插图来了解继承和组合在上述几点方面的不同之处,这将是非常棒的。我已经阅读了各种讨论它们的 SO 链接,但是通过这些关键点的示例对 Java 初学者来说非常有用。
我认为清楚地理解差异比仅仅记住要点非常重要。