В задаче на сравнение айфонов в Правильном решении от автора есть такой код :
if (o == null || getClass() != o.getClass()) {
    return false;
}
Может кто-то пояснить, для чего это и всегда ли это нужно использовать при сравнении объектов ? Ну и вопрос к авторам курса: Почему вы не объясняете в лекции те конструкции, которые необходимы для правильного решения ?