Вы, вероятно, думаете о неявном вызове super()
, который Java вставляет в конструкторы.Но помните, что Java делает это только тогда, когда это необходимо - то есть, когда вы сами не вызываете другой конструктор.Когда вы вызываете this()
в конструкторе House
с одним аргументом, вы уже переходите к другому конструктору, поэтому Java не вставляет туда вызов super()
.конструктор с нулевым аргументом House()
, вы не начинаете его с вызова this(...)
или super(...)
.Таким образом, в этом случае Java вставляет super()
для вас.
В итоге, Java никогда не вызывает Building(String)
.Во время инициализации объекта вызывается только один конструктор суперкласса, и это без аргументов.