我有以下代码,其中有一个父类及其子代。我试图确定代码如何从使用多态中受益。
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)和基类,实际上并不依赖于细节实现,多态将做正确的事情!