когда в 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

0 ответов

Другие вопросы по тегам