Могу ли я оставить отзыв об этом
Учитывая, что "new House (" x ")" отправляет строку, я ожидал, что конструктор "House (String name)" вызвал бы конструктор суперкласса Building«Здание (строковое имя)».В этом случае ответ был бы "bn xh hn x".Однако ответ «bh hn x» (и да, он действительно работает с этим выводом).
Вопросы 1. Кроме вызова «new Building (« string_value »)» »возникла бы ситуация, когда Хаусвызывать конструктор "Building (String name)"?(т. е. кроме дополнительного кода в конструкторах House? 2. Почему вызывается конструктор Building без аргумента, а не перегруженный конструктор Building (String name)? Что я смотрю, так это возможность, что может быть много конструкторов Building иможет возникнуть необходимость вызывать конкретные супер-конструкторы из подклассов. Как убедиться, что конструктор (с двумя или более вариантами) называется?
Код включен для удобства ссылок.
Ответэто "чч хн х"
class Building {
Building() {System.out.print("b ");}
Building(String name) {this(); System.out.print("bn "+name);}
}
public class House extends Building {
House() {System.out.print("h ");}
House(String name) { this();System.out.print("hn "+name);}
public static void main(String a[]) {
new House("x "); }
}
С уважением, Скотт