为什么继承是强耦合的,而组合在Java中是松散耦合的?
我在设计模式中一次又一次地听到过这一点。为此引用的一些原因是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初学者来说,在这些关键点上通过示例会很棒。
我认为清楚地理解差异比仅仅记住要点至关重要。