为什么优先使用组合而不是继承?
子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,解决了系统的重用性和扩展性,但是继承破坏了封装,因为其是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上破坏了系统可扩展性,所以继承要慎用。
继承是在程序开发的过程中重构得到的,而不是程序设计之初就使用继承,很多面向对象开发者滥用继承,结果可能造成后期的代码解决不了需求的变化。因此,优先使用组合而不是继承,是面向对象开发的一个重要经验。
为什么优先使用组合而不是继承?
子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,解决了系统的重用性和扩展性,但是继承破坏了封装,因为其是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上破坏了系统可扩展性,所以继承要慎用。
继承是在程序开发的过程中重构得到的,而不是程序设计之初就使用继承,很多面向对象开发者滥用继承,结果可能造成后期的代码解决不了需求的变化。因此,优先使用组合而不是继承,是面向对象开发的一个重要经验。