继承Java中的一个方法是否可能有交替条件?
所以我想用Java创建一个多态类数组。这是一个动物数组,我想在数组中添加不同种类的动物。Animal是超类,不同种类的动物是子类,我需要实现一个方法,根据属性将特定的动物添加到数组中,但是由于所有种类的动物都有不同的属性,我不知道怎么做。 到目前为止,我有这个基本方法,它编译:
public void addAnimal(String name, double weight) {
if ((numberanimals < animals.length) && (numberanimals == 0)) {
animals[0] = new Animal(name, weight);
numberanimals += 1;
} else if (numberanimals < animals.length) {
animals[numberanimals] = new Animal(name, weight);
numberanimals += 1;
} else {
System.out.println("Zoo is full.");
}
}
所有动物都有名字和体重,但我如何根据狗的皮带长度添加狗,或者添加一条带有布尔值的鲨鱼来表示它是否饿了。有没有可能用这样的一种方法做到这一点
# 1 楼答案
Crocodile
都是一个Animal
李>Animal
保证了对Animal
方法和公共字段的访问李>animal instanceOf Crocodile
检查Animal
是否为Crocodile
Crocodile croco = (Crocodile)animal;
李>Crocodile
添加到Animal[]
或List<Animal>
,因为它是一个Animal
李>instanceOf Object
,因为所有类都扩展了Object
李>你的方法应该是:
然后你可以用任何
Animal
-aLion
-addAnimal(new Lion(...));
等来调用它# 2 楼答案
您可以通过调用“instanceof”来检查实例的确切类。 例如: