Кастинг по методу равных
У меня есть вопрос о переопределении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. Почему все хлопоты с кастингом?