[英]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
對象?
是的,假設Fork
是Utensil
的子類。
一個更好的例子是Fork
是Utensil
的子類:
Fork fork = new Fork();
Utensil utensil = fork;
此時,變量fork
和utensil
都引用同一對象。
是。
強制轉換對象為您提供了對同一對象的引用,但是將其視為您強制轉換為對象的類型。
(拳擊轉換除外)
我認為這不是您真正的意思。 在您的示例中,如果Fork擴展了Utensil,則您的代碼將引發錯誤,因為器皿不是Fork且無法分配給fork。
如果你這樣
Fork fork = new Fork();
Utensil utensil = fork;
則器皿仍會引用原始的Fork對象。 因此,我想您的問題的答案將是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.