351 читали · 2 года назад
Java. Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
В Java порядок вызова конструкторов и блоков инициализации в классе и его иерархии определяется следующим образом: Parent static block(s) → Child static block(s) → Grandchild static block(s) → Parent non-static block(s) → Parent constructor → → Child non-static block(s) → Child constructor → → Grandchild non-static block(s) → Grandchild constructor Например, рассмотрим следующий код: class Base { static { System.out.println("Статический блок инициализации базового класса"); } Base() { System...
5 дней назад
Наследование в java: super и переопределение методов
В прошлой статье мы остановились на том, как работают конструкторы без параметров при наследовании классов. В этой статье разберем: 1. Как работают конструкторы с параметрами 2. Ключевое слово super 3. Переопределение методов. Если за вызов конструктора суперкласса без параметров отвечает компилятор и нам не приходится напрягаться, то вызов конструктора с параметрами нам придётся оформить самим... с помощью ключевого слова super. Смотрим как это работает: Оператор super является мощным инструментом,...