[讨论]如何选择合成还是继承?
java里面代码的可重用性体现在两点:1.在新类里面创建旧类的对象(合成);2.继承旧类(继承)什么时候应该选择合成,什么时候又该选择继承呢?
他们都能在新类里面利用旧类的特性,那么他们的具体区别又是什么?
那我就举个例子吧
class people{
public void say(){
System.out.println(getClass().getSimpleName());
}
public static void toSay(people p){
p.say();
}
}
class chinease extends people{}
class american extends people{}
class english extends people{}
public class TestPeople{
public static void main (String[] args) {
people p;
p=new chinease();
p.say(); //普通的向上转型
people.toSay(p); //函数参数的向上转型
p=new american();
p.say();
people.toSay(p);
p=new english();
p.say();
people.toSay(p);
}
}
写的不好 不要见笑