请不要解释什么叫多态,多态的原理我已经很清楚了。只是暂时还没完全体会到它给我带来的好处,我现在就有个小疑问,比如说下面的程序:
class Computer{
public void turnOn(){
}
}
class PC extends Computer{
public void turnOn(){
System.out.println("PC has turn on");
}
}
class NB extends Computer{
public void turnOn(){
System.out.println("NB has turn on");
}
}
class Test{
public void go(Computer computer){
computer.turnOn();
}
}
go(new PC());
go(new NB());
————————————————————
对于上面的程序,我这样写不也挺好吗:
PC pc = new PC();
NB nb = new NB();
pc.turnOn();
nb.turnOn();
为什么非要费那事重新写个go方法再调用它呢
强调一遍不要再解释多态的概念
对xianlaioy
虽然不知道会不会有新电脑,那万一新写了一个类A又继承了Computer,也实现了turnOn方法,如果我想调用A中的turnOn方法,不还得new一个A么,既然有了A对象的引用不还是可以直接a.turnOn()么
对he036002
其实我不是想怀疑它,只是这根筋一下子没扭过来
对odouaa ——
是不是项目大才能体现出来?
你说的程序中我这样不也行吗,直接调用student.say()让它直接告诉我,因为这样也可以不用管它是什么类型,因为我只要知道它继承了Person类就肯定实现了say()方法。这样岂不是更方便,还省得在School里面定义一个foundPerson()方法。
我不是故意这样问,我也知道多态是面向对象的核心,只是一下子想法没扭过来