По порядку Middle Основы: типы, обёртки, static обновлено

Порядок инициализации при new Child()

Вопрос

Классы Parent и Child extends Parent ещё не загружены. Расставьте, что выполнится при new Child().

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Инициализаторы полей и блоки экземпляра Parent
  2. 2
    static-блоки и static-поля Child
  3. 3
    Инициализаторы полей и блоки экземпляра Child
  4. 4
    Тело конструктора Parent
  5. 5
    static-блоки и static-поля Parent
  6. 6
    Тело конструктора Child
Показать ответ и разбор

Коротко

Сначала инициализация классов сверху вниз по иерархии (один раз), затем создание объекта: каждый уровень иерархии сначала выполняет свои инициализаторы, потом тело конструктора, начиная с родителя.

Правильный порядок

  1. 1
    static-блоки и static-поля Parent
  2. 2
    static-блоки и static-поля Child
  3. 3
    Инициализаторы полей и блоки экземпляра Parent
  4. 4
    Тело конструктора Parent
  5. 5
    Инициализаторы полей и блоки экземпляра Child
  6. 6
    Тело конструктора Child

Разбор

Сначала инициализация классов сверху вниз по иерархии (один раз), затем создание объекта: каждый уровень иерархии сначала выполняет свои инициализаторы, потом тело конструктора, начиная с родителя.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.