[英]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.