class parent {
String s;
parent() {
this(10);
this.s = "First";
}
parent(int a){
this(10.00f);
this.s += "Second";
}
parent(float b){
this("sss");
this.s += "Third";
}
parent(String c){
this('a');
this.s += "Fourth";
}
parent(char d){
this.s = "Fifth";
System.out.println(this.s);
}
}
class chain {
static public void main(String[] string) {
parent p = new parent();
}
}
ВыходКонструкторы перегрузкой в Java
Fifth
Я ожидал, что следующий будет поток
parent()->parent(int a)->parent(float b)->parent(String c)->parent(char d).
Это происходит, но после того, как последний конструктор выполняется я думал, остальные строки, варианты выполнения float, int и no-arg будут выполняться, потому что у них есть код для обработки, и разве это не так, как они работают.
Я предполагаю, что выполнение конструкторов основано на стеке (исправьте меня, если я ошибаюсь).
It ** ** комплект на основе. Добавьте 'System.out.println (this.s);' каждому конструктору и посмотрите результат. – lulyon
System.out.println отсутствует, и this.s + = являются виновниками ..Tx Eric/lulyon – user2655970