我将在我的第一个面向对象程序设计类(class)中参加期末考试,但我仍然不了解多态性的概念。

假设我有一个抽象类“Vehicle”,该类有一个名为“Aircraft”的子类。我的问题是,这两个代码有什么区别?

Aircraft Jetplane = new Aircraft();


Vehicle Jetplane = new Aircraft();

最佳答案

在第二个方面,Jetplane可以是从Vehicle继承的任何其他东西,而不仅仅是飞机。例如,您可能会遇到类似

Vehicle veh = null;
if (someCondition)
    veh = new Aircraft();
else
    veh = new Boat();

在第一个示例中无法做到这一点,因为船不是飞机。

08-07 03:20