サブクラス B1 と B2 によって拡張されたスーパークラス A があります。次に、B1 または B2 のいずれかを拡張する 5 つのサブクラス (C1、C2、C3、C4、C5) があります。
これら 5 つのサブクラスのそれぞれを含む配列を作成しようとしています。
これらのオブジェクトはすべて、タイプ A のインスタンスとしてインスタンス化されます。
ClassA[] objects = new ClassA[5];
各オブジェクトをサブクラスの 1 つに再割り当てしようとします。
objects[0] = new ClassC1;
objects[1] = new ClassC2; // etc...
この時点で、クラス A に存在するメソッドは正常に機能しますが、B1/B2 または他のサブクラスで定義されたメソッドは見つかりません。
objects[0].MethodFromC1(); // returns a "symbol not found" error
instanceof キーワードは、objects[0] がクラス A、B1/B2、および C1 のインスタンスであることを示します。
サブクラスのメソッドをコードに認識させながら、(ループして操作を実行するために) クラス オブジェクトの配列を維持するにはどうすればよいでしょうか?