スーパークラス Animal (犬、猫、マウスなど) を実装する多くのサブクラスがあります。
私もです:
Animal[] arrayOfAnimals = new Animal[100];
犬、猫などのオブジェクトを入れました。
私はそれから何かを得るとき、私はそうします
If(arrayOfAnimals[1] instanceof Dog) {
((Dog)(arrayOfAnimals[1])).speak();
}
else if(arrayOfAnimals[1] instanceof Cat) {
((Cat)(arrayOfAnimals[1])).speak();
}
その動物が猫なのか犬なのかを知る必要があるからです。
ここで、動物のサブクラスが多数あると仮定すると、多くの「else if...」が連続して取得されます。
私の質問は次のとおりです。これを回避する方法はありますか? 私はすでにインターフェース(動物 - >インターフェース、動物を実装する犬、猫など)を使用しようとしましたが、私のプロジェクトでは配列は複製可能でなければならず、動物がインターフェイス (その配列内のオブジェクトは複製されません)