继承与组合的区别

解决方案 »

  1.   

    继承是说2个类基本上有共同的属性,如student继承person,他们都有共同的属性,即姓名,性别,年龄等;
    而组合是可以是几个没有共同属性的类用在一个类中,
      

  2.   

    简单的说
    class A {
        int n = 0;
        void showMe() {
            System.out.println("I am A");
        }
    }class B extends A {
    } //这样叫继承class C {
        private A a = new A();
        private B b = new B();
    } //这样叫组合继承,子类拥有父类的属性和方法,也就是B拥有属性n和方法showMe。组合,是把多个类的实例组合在一起形成一个大类,该类除非自己添加属性和方法,否则本身不会拥有任何类的属性和方法,也就是C不拥有属性n和方法showMe(除非自己加),但是可以访问组合成该类的每个实例的可见方法和属性,也就是C里面可以通过a.showMe()来调用A的方法。
      

  3.   

    继承、组合、聚合这三个概念都是代码复用的体现,差距在于类之间的耦合程度上。
    继承关键字是extends,A继承B用英文来表示就是A is a B;
    组合和聚合都是在类A中存在类B的引用,其不同点在于:
        1.采用组合的方式,需要负责B的对象的生命周期;
        2.采用聚合的方式,无需负责B的对象的生命周期
    所谓的负责生命周期,就是是否由类A来负责类B的对象的创建和销毁。
    就是这样ps:我是菜鸟,欢迎共同学习哦