Встречается на собеседованиях • сегодня
Почему можно использовать equals не переопределяя его
По умолчанию equals() наследуется от Object и сравнивает ссылки (как ==). Переопределять его необязательно, если:
- Нужно сравнение по ссылкам – например, для синглтонов или когда уникальность экземпляров важна.
- Класс неизменяем (final) и наследует корректную реализацию – например,
StringилиIntegerуже переопределяютequals().
Пример без переопределения:
java
class Singleton {
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
// equals() не переопределён – сравнение по ссылкам
}
Singleton a = Singleton.getInstance();
Singleton b = Singleton.getInstance();
System.out.println(a.equals(b)); // true (та же ссылка)⚠️ Но если логика сравнения объектов должна учитывать их состояние, equals() нужно переопределять вместе с hashCode().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы