我对多态分配有疑问。 让我们假设这个声明:
CAR car;
MERCEDES mercedes;
//MERCEDES inherits from CAR
car = new MERCEDES(classA);
mercedes = car
最后一项任务是否可行?我认为第一项任务会将汽车的类型更改为 MERCEDES ,因此最后一项任务是正确的。 但是我在表格中显示它没有编译,因为赋值源和目标不兼容。 这是正确的吗?为什么会这样呢?
答案 0 :(得分:0)
您的工作表是正确的,因为CAR
不一定是MERCEDES
。在你的情况下恰好是正确的,但考虑一般情况。
可能有很多车型,编译器无法保证赋值表达式完全正确。