ランタイム入力に応じて、基本クラスのインスタンス(Aと言う)または派生クラスのインスタンス(Bと言う)を返すことができるJAVAメソッドがあります。( B は A から派生します)
メソッドが 'B' 型のオブジェクトを返す場合、それを 'B' 型の参照に割り当てるにはどうすればよいですか? 派生クラスにのみ存在するメンバーを使用する必要があるため、基本型の参照に割り当てることはできません。
ランタイム入力に応じて、基本クラスのインスタンス(Aと言う)または派生クラスのインスタンス(Bと言う)を返すことができるJAVAメソッドがあります。( B は A から派生します)
メソッドが 'B' 型のオブジェクトを返す場合、それを 'B' 型の参照に割り当てるにはどうすればよいですか? 派生クラスにのみ存在するメンバーを使用する必要があるため、基本型の参照に割り当てることはできません。
これを可能にするには、明示的な型キャストを行う必要があります。その前に、キーワードを使用してref
クラスがサブクラスのインスタンスであるかどうかを確認してください。B
instanceof
if (ref instanceof B) { //Check if ref is an instance of base class B
((B) ref).function();
}
A a = yourMethod(input);
if (a instanceof B) {
B b = (B) a;
b.subclassmethod();
}