我有一节课,Super:
public class Super {
public static String foo = "foo";
}
Run Code Online (Sandbox Code Playgroud)
我还有另一个类,Sub它扩展了Super:
public class Sub extends Super {
static {
foo = "bar";
}
public static void main (String[] args) {
System.out.println(Super.foo);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它打印出来bar.
我的第三个(也是最后一个)课程是Testing:
public class Testing {
public static void main (String[] args) {
System.out.println(Super.foo);
System.out.println(Sub.foo);
System.out.println(Super.foo);
}
}
Run Code Online (Sandbox Code Playgroud)
这打印:
foo
foo
foo
Run Code Online (Sandbox Code Playgroud)
我不明白为什么内容foo会有所不同,具体取决于您从哪个班级访问它.谁能解释一下?