• Tags , , , ,         
  • 2017-12-20  19:53:40        
  • 29 °C    

    什么时候用组合,什么时候用继承


    我们知道了组合和继承的基本特性,那么,这两种方法都是对类的复用,我们什么时候应该使用继承,什么时候应该使用组合呢?

    1. 如果两个类的关系是一种'IS'的关系,那么我们推荐应该使用继承,继承是一个类要向另一个的类暴露所有方法和接口的。比如:teacher is a person, 那么teacher的类就可以继承person里面的特性。

    2. 如果两个类的关系是一种'HAS'的关系,那么我们推荐应该使用组合,组合是用其中一个类的一个功能。比如, teacher has function: attack。那么,我们就可以从一个跆拳道高手里面找到这个功能,组合到老师这个类中,这样就很牛了。

    只有我们充分了解组合和继承这两个的基本特性,才能更好地对这两个进行更好的应用。

     

    组合和继承的优缺点


    组合的优点:

    1. 组合不会破坏封装,每个类之间松耦合,彼此之间相对独立

    2. 具有较好的可扩展性优点:支持动态组合。就是说一个类可以选择多个类来进行组合都是可以的

    3. 整体类可以对局部类进行包装,就是调用局部类的方法,将方法的特性重写,进行更好的封装。比如

    组合的缺点

    1. 整体类不能自动获得和局部类的所有方法和接口的

    2. 在创建整体类的对象时,你需要创建所有局部类的对象

     

    继承关系的优点

    1. 创建子类的对象时,无须创建父类的对象

    2. 子类能自动继承父类的所有方法和接口

    继承关系的缺点

    1. 子类不能改变父类的接口

    2. 继承关系会破坏封装,子类和父类之间紧密耦合,子类缺乏独立性

    3. 不支持动态继承。在运行时,子类无法选择不同的父类

    4. 支持扩展,但是往往会增加系统结构的复杂程度

    本文内容来自:Java的组合语法和继承语法的结合实用 – Break易站


    —Author: Arvin Chen —Web Address: www.breakyizhan.com (Break易站)

     
    转载请保留页面地址:https://www.breakyizhan.com/javamind/948.html