Я пытаюсь использовать статические блоки следующим образом:
У меня есть базовый класс Base.java
public class Base {
static public int myVar;
}
И производный класс Derived.java
:
public class Derived extends Base {
static
{
Base.myVar = 10;
}
}
Моя функция main
такова:
public static void main(String[] args) {
System.out.println(Derived.myVar);
System.out.println(Base.myVar);
}
Это печатает вывод out как 0 0
, где я ожидал 10 0
. Может ли кто-нибудь объяснить это поведение? Кроме того, если я хочу, чтобы мои производные классы устанавливали значения для статической переменной, как я могу это достичь?