簡體   English   中英

用Java轉換對象時,是否保留了對原始對象的引用?

[英]When casting an object in Java, is the reference to the original preserved?

例如,如果我要上一個Utensil類,然后像這樣實例化它:

Utensil utensil = new Utensil();

然后又有了一個新的類Fork ,並像這樣鑄造utensil

Fork fork = (Fork)utensil;

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

是的,假設ForkUtensil的子類。

一個更好的例子是ForkUtensil的子類:

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

此時,變量forkutensil都引用同一對象。

是。

強制轉換對象為您提供了對同一對象的引用,但是將其視為您強制轉換為對象的類型。
(拳擊轉換除外)

我認為這不是您真正的意思。 在您的示例中,如果Fork擴展了Utensil,則您的代碼將引發錯誤,因為器皿不是Fork且無法分配給fork。

如果你這樣

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

則器皿仍會引用原始的Fork對象。 因此,我想您的問題的答案將是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM