多态性:源和目标不兼容



我有一个关于多态赋值的问题。让我们假设以下声明:

CAR car;
MERCEDES mercedes;
//MERCEDES inherits from CAR
car = new MERCEDES(classA);
mercedes = car

最后一项任务可能吗?我认为第一个任务将汽车类型更改为梅塞德斯,因此最后一个任务是正确的。但是在我拥有的工作表中,它显示它无法编译,因为赋值源和目标不兼容。这是对的吗?为什么会这样?

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

可能有很多汽车类型,编译器根本无法保证赋值表达式为真。

相关内容

  • 没有找到相关文章

最新更新