私はJavaで次のシステムを持っています:
public class Human {
public void drown(Animal animal) {
if (animal instanceOf Fish) {
return;
} else {
animal.die();
}
}
}
public abstract class LandAnimal extends Animal{...}
public class Tiger extends LandAnimal{...}
public abstract class Fish extends Animal {...}
public class Trout extends Fish {...}
メソッドを追加することを考えました
public abstract boolean drownable() {...}
クラスAnimalでは、Animalクラスのコードにアクセスできません。私が知っているように、instanceOf の使用は悪い OOP プラクティスと見なされます。この場合、instanceOf の使用を避けるにはどうすればよいですか? ありがとう。