不推荐使用继承
继承表示is-a的关系,用于代码复用。但是继承会增加代码的耦合,复杂的继承关系(层次过深,过于复杂)会影响代码维护。
组合的优势
继承主要有三个作用:表示 is-a 关系,支持多态特性,代码复用。而这三个作用都可以通过组合、接口、委托三个技术手段来达成。除此之外,利用组合还能解决层次过深、过复杂的继承关系影响代码可维护性的问题。
判断该用组合还是继承
在实际的项目开发中,我们还是要根据具体的情况,来选择该用继承还是组合。如果类之间的继承结构稳定,层次比较浅,关系不复杂,我们就可以大胆地使用继承。反之,我们就尽量使用组合来替代继承。