参考如下:
public class Main {
public static void main(String[] args) {
Animal[] animals = new Animal[4];
animals[0] = new Dog("Jim");
animals[1] = new Cat("Tom");
animals[2] = new Dog("Rose");
animals[3] = new Cat("Peter");
System.out.println("狗的数量:" + getAllDog(animals));
}
private static int getAllDog(Animal[] animals) {
int count = 0;
for (Animal animal : animals) {
if (animal instanceof Dog)
count++;
}
return count;
}
}
class Animal {
String name;
public Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
public Dog(String name) {
super(name);
}
}
class Cat extends Animal {
public Cat(String name) {
super(name);
}
}
先定义animal类,有两个成员,动物类型和动物名称;然后定义dog/cat类继承自animal,在构造方法中将类型赋为对应的动物,名称需要传入。
这样getalldog,传入数组,进行遍历,找到类型为dog的就可以。