对象在被向上转换后(在Java中)是否可以从以前的引用访问?
假设A是父类。让B和C成为它的子类对象在被向上转换后(在Java中)是否可以从以前的引用访问?,java,oop,reference,upcasting,Java,Oop,Reference,Upcasting,假设A是父类。让B和C成为它的子类 A a; B b = new B(args); a = b; 类型B对象是否仍然可以通过B访问,或者是否已永久向上转换为类型A?转换根本不会更改对象。它只是给你“一种不同的看待对象的方式”(把它看成是“a”而不是“B”)。但他们对同一个物体有不同的看法。您通过a所做的任何更改都将通过b等可见 没有演员阵容也是如此。例如,如果有一对具有明显行为的setValue/getValue方法,您将看到: b1=新的B(args); b2=b1; b1.设定值(10);
A a;
B b = new B(args);
a = b;
类型B对象是否仍然可以通过B访问,或者是否已永久向上转换为类型A?转换根本不会更改对象。它只是给你“一种不同的看待对象的方式”(把它看成是“a”而不是“B”)。但他们对同一个物体有不同的看法。您通过
a
所做的任何更改都将通过b
等可见
没有演员阵容也是如此。例如,如果有一对具有明显行为的setValue
/getValue
方法,您将看到:
b1=新的B(args);
b2=b1;
b1.设定值(10);
System.out.println(b2.getValue());//10
分配不会复制对象-它会将对象的引用从b1
复制到b2
您可能也会觉得很有帮助。变量
b
及其引用的对象不会因为您将同一对象分配给a
而受到影响。哦,欢迎回复!在第一行之内。感谢您的快速澄清@Jon@shadyshamus:Goodo-我添加了更多的解释,以帮助其他发现此内容的人:)