oop—对象在被上推后(在java中)是否可以从以前的引用访问?

6bc51xsx  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(318)

假设a是父类。让b和c作为它的子类。

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

类型b对象是否仍然可以通过b访问,或者是否已永久向上转换为类型a?

iecba09b

iecba09b1#

演员根本不会改变对象。它只是给了你“一种不同的看待对象的方式”(把它看作是“a”而不是“b”)。他们对同一个物体有不同的看法。您通过 a 将通过 b 等。
没有演员也是如此。例如,如果有 setValue / getValue 一对行为明显的方法,你会看到:

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

赋值不会复制对象-它会从中复制对对象的引用 b1b2 .
你可能会发现我解释变量、引用和对象之间区别的答案也很有用。

相关问题