到底该使用组合还是继承,一个最清晰的判断办法就是问一问自己是否需要新类向基类进行向上转型。如果必须向上转型,则继承是必须要的,如果不需要,则应该好好考虑是否需要继承。

                                  摘自 <<Java编程思想>>


                             

package com.zhyao.extend;

public class Animal {

private String name;

public Animal(String name){

this.name = name;

}

public void play(Animal animal){

System.out.println(animal.name);

}

}


package com.zhyao.extend;

public class Dog extends Animal {


public Dog(String name) {

super(name);

}

}



package com.zhyao.extend;

public class TestMain {


/**

* @param args

*/

public static void main(String[] args) {

Animal animal = new Dog("小黄");

animal.play(animal);

}


}