Что напечатает следующий код:
 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. Конструктор класса

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты