Что напечатает следующий код:
 class A {
  public A() { System.out.print("A"); }
}
 class B {
  public B() { System.out.print("B"); }
}
 class C {
  public C() { System.out.print("C"); }
}
public class D extends C {    
  private A objA = new A();
  private static B objB = new B();    
  
  public D() { System.out.print("D"); }
  
  public static void main(String[] args){
    new D();
  }
}
Explanation
Согласно JLS порядок инициализации объекта следующий:
1. Инициализация static полей во время загрузки класса
2. Инициализация суперкласса
3. Инициализация полей в порядке очередности перед вызовом любого конструктора класса
4. Конструктор класса

Follow CodeGalaxy

Mobile Beta

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