object 在被向上转换后(在 Java 中)是否可以从以前的引用访问?

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

假设 A 是 parent class。令 B 和 C 为其 child classes.

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

类型 B object 是否仍可通过 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

赋值不会复制对象 - 它会将 reference 复制到从 b1b2 的对象。

您可能会发现 my answer explaining the difference between a variables, references and objects 也很有帮助。