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里面多态一般指的是运行时多态,重载多态是通过方法签名实现的,同一个方法名,但是要求参数必须不一样,这个在编译期间就可以确定调用的是哪个方法。