В результате выполнения данного кода:

class Super { static String ID = "QBANK"; }
class Sub extends Super{
  static { System.out.print("In Sub"); }
}
class Test{
  public static void main(String[] args) {
    System.out.println(Sub.ID);
  }
}
Explanation
Класс инициализируется в следующих случаях:
1. Когда вызывается метод, непосредственно находящийся в данном классе (а не наследующийся от суперкласса);
2. Когда вызывается конструктор данного класса, либо когда создается массив объектов данного класса;
3. Когда читается либо присваивается поле, которое не является константой;
В данном случае, ни одно из этих трех условий не выполнялось, таким образом, класс Sub не инициализировался.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes