继承和组合的使用原则:
1、很多资料中提到的一点,如果两个类之间是is-a的关系,那么就使用继承,而如果是has-a的关系就使用组合。
但是这也不是代表is-a是使用继承的绝对理由,有时候为了消除继承关系带来的耦合,使用组合可以更好的实现封装细节。
如果在一个系统中大量应用继承,继承层次深了,那么会给系统的开发和维护带来困难。
2、无论何时,如果你使用继承,但是又不想向上转型,那么这个时候就应该慎重选择,只要有可能,就应该考虑使用组合来达
到自己的目的。因为组合在类的运行期间通过类的属性来改变类的行为,这样更加灵活,并且可以随时出现。
3、还有一个重要原则是方法是否共享。
抽象类和接口的选用原则:
1、如果多个派生类的方法中没有共同的地方,那么就使用接口作为抽象,否则就使用抽象类作为抽象
2、当系统某个地方只需要定义对象的行为,而不需要实现对象的行为,这个时候就尽量使用接口。
上面只是个简单的介绍,读者还需要慢慢的品味话中的含义继承和组合、抽象类和接口,布布扣,bubuko.com
继承和组合、抽象类和接口
原文:http://blog.csdn.net/andywuchuanlong/article/details/25832897