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、および no-arg コンストラクターのバリアントが実行されると思いました。処理するコードがあり、それらがどのように機能するかではないためです。
コンストラクターの実行はスタックベースであると想定しています (間違っている場合は修正してください)。