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