【发布时间】:2013-07-06 20:00:00
【问题描述】:
据我所知不可能将超类的对象转换为子类的对象。这会编译,但在运行时会返回错误。
更具体地说,给定以下类和接口层次结构:
。 Alpha 是 Beta 和 Gamma 的超类
. Gamma 是 Delta 和 Omega 的超类
.接口“In”由Beta和Delta实现
在这种情况下,我定义了以下代码:
Delta r;
Gamma q;
这对吗?
r = (Delta) q;
即使 Delta 是 Gamma 的子类,我也可以将 q 转换为 Delta 类型吗? 我认为这是不可能的,我的教科书另有说明。我已经搜索了很多,根据this 我是对的,这是教科书上的错误。
我错过了什么吗?
【问题讨论】: