我有一个类Super
:
public class Super {
public static String foo = "foo";
}
我也有另一个类Sub
,它继承了Super
:
public class Sub extends Super {
static {
foo = "bar";
}
public static void main (String[] args) {
System.out.println(Super.foo);
}
}
当我运行它时,它会打印出 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);
}
}
这将打印:
foo
foo
foo
我不明白为什么从不同的类访问foo
会导致其内容不同。有人能解释一下吗?
Sub
包含public static String foo = "bar";
时会得到的内容(这时你会得到"foo", "bar", "foo",就如你可能预期的那样)。 - T.J. Crowder