关于组合和继承的问题求赐教
各位大神,小弟刚刚学习JAVA,但被教科书上的继承和组合搞糊涂了,不知这两个的使用方法有什么难易好坏,求大神~~~
学业繁忙,不能一一回复,请谅解。
------解决方案--------------------继承受到的限制很大,因为Java只能单继承,需要多继承处理的情况就不合适了。
很多设计模式用组合来代替继承,例如Decorate,Adapter,Strategy模式,灵活,不受继承的影响。
用组合能更好的解耦,但是该用继承的时候用继承,但不要滥用。
------解决方案--------------------组合和继承都可以用来装配现有的代码,但是继承使用的场合要更注意,子类必须和派生类具有逻辑上的同类性,比如小汽车从汽车类可以继承。但是小汽车不能从方向盘继承。
Java不支持多继承,使用继承意味着它将不能再从另一个类继承了。
但是可以聚合多个对象。我们优先提倡使用聚合,因为聚合是一种比继承更松散的关系。我们可以方便地添加/删除聚合的对象,如同把轮胎从车上拆下一样。但是继承则不然,因为调用者将派生类视作基类的具体化,那么你就不能随意取消继承关系。