java中“合成”与“继承”谁能详细给小弟讲解下啊!
怎么用?什么地方用?各自的特征?最好能配上个例子!
先感谢了,希望大侠们能解除小弟的疑惑!

解决方案 »

  1.   

    合成(Composition),也叫“组合”,一个类包含另一个类类型的成员。如,汽车类包含轮子类的成员:class Car {
      private Wheel[] wheels;
    }
    class Wheel {
    }继承(Inheritance),一个类在另一个类的基础上扩展或重新实现部分功能,这时,这个类叫另一个类的派生类。如,一般手机与拍照手机,后者扩展了前者的功能;又如,电脑与笔记本电脑,后者重新实现了前者的部分功能。组合和继承各有用处,需根据具体情况具体分析。当事物之间有明显的包含关系,通常称Has-A关系,用组合;当事物之间有一般到具体的关系,通常称Is-A,用继承。大部分情况下,这两种关系的区别还是很明显的,很容易判别。但也有特殊情况,如表示点的Point类,和表示线段的Line类,Line可以包含两个Point作为端点(组合),也可以在Point的基础上再扩展一个点(继承),这时可根据实现的复杂度来取舍。