これについてフィードバックをいただけますか
"new House("x ")" が文字列を送信すると、"House(String name)" コンストラクターが Building スーパークラス コンストラクター "Building(String name)" を呼び出すと予想していました。その場合、答えは「bn xh hn x」になります。ただし、答えは「bh hn x」です(はい、その出力で実行されます)。
質問 1. "new Building("string_value")" の呼び出し以外に、House が "Building(String name)" コンストラクターを呼び出す状況はありますか? (つまり、House コンストラクターの追加コード以外は? 2. オーバーロードされた Building (String name) コンストラクターではなく、引数のない Building コンストラクターが呼び出されるのはなぜですか?サブクラスから特定のスーパー コンストラクターを呼び出す必要がある場合があります。
参照しやすいようにコードが含まれています。
答えは「bh hn x」です。
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 "); }
}
よろしくスコット