0

例如,如果我有一个类Utensil,然后我像这样实例化它:

Utensil utensil = new Utensil();

然后还有一个新的 class Fork,并utensil像这样:

Fork fork = (Fork)utensil;

是否fork仍在引用原始utensil对象?

4

3 回答 3

4

是的,假设ForkUtensil.

一个更好的例子是Fork成为 的子类Utensil

Fork fork = new Fork();
Utensil utensil = fork;

此时变量forkutensil都引用同一个对象。

于 2013-10-14T02:42:31.813 回答
3

是的。

转换一个对象给你一个对同一个对象的引用,但是把它看作你转换它的类型。
(拳击转换除外)

于 2013-10-14T02:40:38.933 回答
3

我不认为这是你真正的意思。在您的示例中,如果 Fork 扩展了 Utensil,那么您的代码将引发错误,因为 utensil 不是 Fork 并且不能分配给 fork。

如果你有这种方式

Fork fork = new Fork();
Utensil utensil = fork;

那么 utensil 仍然会引用原始的 Fork 对象。所以我想你的问题的答案是肯定的。

于 2013-10-14T02:43:07.043 回答