上一个对象(在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

你可能会发现我解释变量、引用和对象之间的区别的答案也很有用。

最新更新