когда в Java выполняется статический блок инициализатора?
public class Parent {
public static int y=10 ;
}
public class Child extends Parent {
static {
y=20 ;
}
public static void main(String[] args) {
System.out.println(Child.y); // output = 20
}
}
public class Test {
public static void main(String[] args) {
System.out.println(Child.y); // output = 10
}
}
Примечание. В первом сценарии выполняется статический блок. Но во втором сценарии дело обстоит иначе. Почему? Почему выходное значение отличается? Я использую JDK-17