继承和组合

同一个目的:代码重用,通过现有类来实现一个新类.

    组合:  我家里有个管家帮我了我很大的忙,我有一个管家.   has-a

        灵活多变;

        低耦合,保持了封装性,内部细节不可见,黑盒复用!;

        运行时动态决定实现;

    继承:   我父亲在家里给我帮了很大的忙,我是我父亲的儿子  is-a

        单一;

         易修改和扩展已有的实现!

        高依赖,父类改变会影响所以子类;

        破环封装性而且父类会对子类暴露内部细节;

        编译时就决定了实现

    

组合通常优于继承,

1.考虑使用多态,可以用继承。
2.
考虑复用父类方法,而且父类很少改动,可以用继承。

你可能感兴趣的:(继承和组合)