我有以下代码,其中有一个父类及其子代。我试图确定代码如何从使用多态中受益。

class FlyingMachines {
    public void fly() {
        System.out.println("No implementation");
    }
}

class Jet extends FlyingMachines {
    public void fly() {
        System.out.println("Start, Taxi, Fly");
    }

    public void bombardment() {
        System.out.println("Throw Missile");
    }
}

public class PolymorphicTest {
    public static void main(String[] args) {
        FlyingMachines flm = new Jet();
        flm.fly();

        Jet j = new Jet();
        j.bombardment();
        j.fly();
    }
}

flm.fly()j.fly()给出相同答案时,多态性有什么优势?

最佳答案

首先让我们看一下OO设计,继承表示IS-A关系,通常我们可以说“让FlyingMachines飞起来”。每个特定的FlyingMachines(子类)都是IS-A FlyingMachines(父类),适合此“让Jet飞”,而我们希望这种飞行实际上是特定的子(子类)的飞行功能,那就是多态性接管。

因此,我们以抽象的方式进行操作,面向接口(interface)和基类,实际上并不依赖于细节实现,多态将做正确的事情!

08-04 03:43