Кастинг по методу равных

У меня есть вопрос о переопределенииequals метод в Java. В моей книге у меня есть следующий пример:

public class Dog{
     private String name;
     private int age;

public boolean equals(Object obj) {
    if(!(obj instanceof Dog)) return false;
    Dog other = (Dog) obj;                    ---> confused here
    if(this.name.equals(other.name) && (this.age == other.age) {
     return true;
    }
    else {
     return false;
    }
  }
}

Я не понимаю, почему нужно бросить ссылку наDog ссылка. Если эта ссылка не относится к типуDog мы возвращаем false. Почему все хлопоты с кастингом?

Ответы на вопрос(7)

Ваш ответ на вопрос