java中我们会经常使用到继承,组合渐渐的被我们所淡忘,然而,组合与继承在java中同样的重要
所谓组合,说白了也就是某个类在创建时应用其他类里边的东西,从而是代码变得简洁,我们来看一个例子:
public class Amimal{
public String nose;
public String mounth;
public String eat(){
return "I like orange";
}
public void sleep(){
System.out.println("我得睡觉");
}
}
在上面的例子中我们创建了一动物类(Animal),比如,现在我们要创建一个Dog 类,它明显属于动物的子类,那么此时使用继承是一个不错的选择
public class Dog extends Amial{
public String weiba;
public String call(){
System.out.println("旺旺");
}
}
但同时我们也可以使用组合来完成以上功能
public class Bird{
public String height;
private Animal animal;
public Bird(
Animal animal
){
this.animal=animal;
}
public String fly(String height){
System.out.println("我能飞"+height+"高");
}
}
创建一个main方法来验证
public calss test{
public static void mian(String[] args){
//Dog类继承了Animal类,所以可以使用animal中的方法
Dog dog=new Dog();
dog.sleep();
dog.call()
//Bird 类运用了组合关系,同样也可以使用
Bird bird=new Bird();
bird.sleep();
bird.fly("50米");
}
}
//运行结果:
我得睡觉
旺旺
我得睡觉
我能飞50米高