JAVA多态调用
别的地方看到的:
举个例子,显示鸟的飞行动作
对于八哥鸟,你可以这样new Myna().fly();
对于鹦鹉,你可以这样new Parrot().fly();
对于孔雀,你可以这样 new Peacock().fly();
。。。
对于每一个具体的鸟,你都必须调用具体的鸟类对象。
现在使用多态再来看看。
我们先写一个Bird类,用来抽取出鸟类的飞行动作。
public abstract class Bird {
public void fly() {
System.out.println("default bird fly!");
}
}
再写具体的鸟类,继承Bird类
class Parrot extends Bird {
@Override
public void fly() {
System.out.println("Parrot fly");
}
}
class Myna extends Bird {
@Override
public void fly() {
System.out.println("Myna fly");
}
}
现在再来看一下八哥和鹦鹉的飞行动作。
public static void main(String args[]) {
Bird bird = new Parrot();
bird.fly();
bird = new Myna();
bird.fly();
}
这样,同一个Bird的实例对象实际对调用的是八哥和鹦鹉的飞行动作。
假如这样还不清楚。那么现在有一个flyPerform()方法,显示具体的鸟的飞行行为。
flyPerform(Bird bird){
bird.fly();
}
那么你就可以这样
flyPerform(new Parrot());
flyPerform(new Myna());
假如现在又有了一种新的鸟,NewBird那么我们只需要将new NewBird作为参数传入flyPerform方法即可,而不需要去修改这个方法的代码。
这是一个比较粗糙的例子,要不你仔细琢磨看看?
对于这个推荐答案,我不是很认同,
在java里面多态一般指的是运行时多态,重载多态是通过方法签名实现的,同一个方法名,但是要求参数必须不一样,这个在编译期间就可以确定调用的是哪个方法。