我在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 ?谢谢。