簡體   English   中英

對象在向上轉換后是否可以從先前的引用訪問(在 Java 中)?

[英]Is an object accessible from a previous reference after it has been upcast (in Java)?

說 A 是一個父類。 讓 B 和 C 成為它的子類。

A a;
B b = new B(args);
a = b;

類型 B 對象是否仍可通過 b 訪問,還是已永久向上轉換為類型 A?

演員表根本不會改變對象 它只是為您提供了“看待對象的不同方式”(將其視為“A”而不是“B”)。 但他們對同一對象的看法不同。 您通過a所做的任何更改都將通過b等可見。

沒有演員也是如此。 例如,如果有一組具有明顯行為的setValue / getValue方法,您會看到:

B b1 = new B(args);
B b2 = b1;
b1.setValue(10);
System.out.println(b2.getValue()); // 10

賦值不會復制對象 - 它會將對象的引用b1復制到b2

您可能會發現我的回答解釋了變量、引用和對象之間的區別也很有幫助。

暫無
暫無

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

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