[英]Is instance variable shared between super class and sub class in java
class A{
String foo="bar";
void m(){
}
}
class B extends A{
//String foo="xyz";
void m(){
foo="xyz";
System.out.println(foo);
System.out.println(super.foo);
}
}
public class Dell{
public static void main(String[] args)
{
A a=new B();
System.out.println(a.foo);
a.m();
}
}
这是在超类(A)和子类(B)之间共享的 foo 变量。当我在 m() 方法中调用 super.foo 时,为什么它不调用 A 类 foo 变量值,即 bar。似乎 foo 在两者之间共享类。但是这怎么可能? 当我们用 foo 变量声明 A 时,它有自己的副本,现在当我们覆盖它并更改子类中的 foo 值时,它如何反映回 Super 类? 请很好地解释我们的概念
这基本上是您需要了解的关于超类和子类中的实例变量范围的内容。
http://www.xyzws.com/javafaq/what-is-variable-hiding-and-shadowing/15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.