344 читали · 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...
1 год назад
Java 284. В чем разница между super() и this()?
super() и this() - это вызовы конструкторов. super() вызывает конструктор суперкласса, а this() вызывает другой конструктор того же класса. Обычно super() используется для выполнения общих инициализаций, определенных в суперклассе, в то время как this() используется для вызова других конструкторов текущего класса, обеспечивая возможность перегрузки конструкторов в классе. Если в классе нет явного конструктора, то Java автоматически создаст конструктор без параметров, в котором будет вызван конструктор суперкласса по умолчанию используя super()...