マルチクラスのコンストラクターに渡されたブール条件をチェックしています。真の場合、基本的this
にサブクラスのインスタンスに割り当てようとしています。
もちろんそれは機能しません。この方法でインスタンスをリダイレクトする方法はありますか? これを行う方法がない場合、その理由は何ですか?
マルチクラスは次のとおりです。
public class MultiClass {
String str;
public MultiClass(boolean flag) {
if (flag) {
// doesn't work! wish it would:
// this = new ExtraClass();
} else {
this.str = "you are in the first class";
}
}
} // end of MultiClass
class ExtraClass {
String str;
ExtraClass() {
this.str = "you are in the second class";
}
} // end of ExtraClass
...そしてテスタークラス:
public class MultiClassTest {
public static void main(String[] args) {
MultiClass test = new MultiClass(false);
System.out.println(test.str);
}
} // end of MultiClassTest