java 中使用继承与组合的区别与使用场合

来源:互联网 发布:c 常量数组 编辑:程序博客网 时间:2024/06/10 07:23

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米高