У меня есть класс, 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 меняется в зависимости от того, из какого класса вы обращаетесь к нему. Может кто-нибудь объяснить?