You can do something like the following
List<Animal> animalList = new ArrayList<Animal>(); animalList.add(new Dog()); animalList.add(new Cat()); for(Animal animal : animalList) { if(animal instanceof Dog) { System.out.println("Animal is a Dog"); } else if(animal instanceof Cat) {; System.out.println("Animal is a Cat"); } else { System.out.println("Not a known animal." + animal.getClass() + " must extend class Animal"); } }
You can also check the Animal class and compare it with Animal subclasses. As in
for(Animal animal : animalList) { if(animal.getClass().equals(Dog.class)) { System.out.println("Animal is a Dog"); } else if(animal.getClass().equals(Cat.class)) {; System.out.println("Animal is a Cat"); } else { System.out.println("Not a known animal." + animal.getClass() + " must extend class Animal"); } }
In both cases, you will get the output as
Animal is a Dog Animal is a Cat
Basically, both do the same thing. Just to better understand.
source share