日期:2014-05-20  浏览次数:20837 次

继承与组合
继承与组合的区别

------解决方案--------------------
烦请楼主先写下你对此问题的理解,别人才会针对你的问题给出建议。
------解决方案--------------------
找本《设计模式》的书看下。
------解决方案--------------------
继承是说2个类基本上有共同的属性,如student继承person,他们都有共同的属性,即姓名,性别,年龄等;
而组合是可以是几个没有共同属性的类用在一个类中,
------解决方案--------------------
简单的说
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的方法。



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

ps:我是菜鸟,欢迎共同学习哦
------解决方案--------------------
万物一切皆对象。
继承就是“是一个”的关系。比如,“三角形”是一个“图形”,那“三角形”就可以继承“图形”