例如,如果我有一个类Utensil
然后我像这样实例化它:
Utensil utensil = new Utensil();
然后还有一个新的课程Fork
,并像这样投了utensil
:
Fork fork = (Fork)utensil;
fork
是否仍在引用原始utensil
对象?
答案 0 :(得分:4)
是的,假设Fork
是Utensil
的子类。
更好的例子是Fork
是Utensil
的子类:
Fork fork = new Fork();
Utensil utensil = fork;
此时变量fork
和utensil
都引用同一个对象。
答案 1 :(得分:3)
是
转换对象会为您提供对同一对象的引用,但会将其视为您将其转换为的类型。
(拳击转换除外)
答案 2 :(得分:3)
我认为这不是你的意思。在您的示例中,如果Fork扩展了Utensil,那么您的代码会抛出错误,因为utensil不是Fork而且无法分配给fork。
如果你这样做的话
Fork fork = new Fork();
Utensil utensil = fork;
然后器具仍将引用原始的Fork对象。所以我想你问题的答案是肯定的。