多态性:源和目标不兼容

时间:2016-06-04 10:16:45

标签: class dynamic polymorphism compatibility attachment

我对多态分配有疑问。 让我们假设这个声明:

CAR car;
MERCEDES mercedes;
//MERCEDES inherits from CAR

car = new MERCEDES(classA);
mercedes = car

最后一项任务是否可行?我认为第一项任务会将汽车的类型更改为 MERCEDES ,因此最后一项任务是正确的。 但是我在表格中显示它没有编译,因为赋值源和目标不兼容。 这是正确的吗?为什么会这样呢?

1 个答案:

答案 0 :(得分:0)

您的工作表是正确的,因为CAR不一定是MERCEDES。在你的情况下恰好是正确的,但考虑一般情况。

可能有很多车型,编译器无法保证赋值表达式完全正确。