public boolean isAfraidOf(Animal animal) {
//Compare the class of this animal to Bird
if (animal.getClass() == Bird.class) {
return false;
} else {
return true;
}
getClass()
returns the Class
. So animal.getClass()
would return type Animal and the comparison would return false
.
So here is a comprehensive study for your understanding:
Animal animal = new Animal();
Bird bird = new Bird();
Animal birdAnimal = new Bird();
if (animal.getClass() == bird.getClass()){
System.out.println("Bird equals to animal");
}else{
System.out.println("Bird not equals to animal");
}
if (birdAnimal.getClass() == animal.getClass()){
System.out.println("BirdAnimal equals to animal");
}else {
System.out.println("BirdAnimal not equals to animal");
}
if (animal.getClass() == Animal.class){
System.out.println("animal equals to Animal");
}else{
System.out.println("animal not equals to Animal");
}
if (animal.getClass() == Bird.class){
System.out.println("animal equals to Bird");
}else{
System.out.println("animal not equals to Bird");
}
And here is the output:
Bird not equals to animal
BirdAnimal not equals to animal
animal equals to Animal
animal not equals to Bird