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();
}
}
输出是
Fifth
我预计以下将是流程
parent()->parent(int a)->parent(float b)->parent(String c)->parent(char d).
这种情况发生了,但是一旦执行了最后一个构造函数,我认为剩余的 String、float、int 和无参数构造函数变体将被执行,因为它们确实有代码要处理,而不是它们的工作方式。
我假设构造函数的执行是基于堆栈的(如果我错了,请纠正我)。