Встречается на собеседованиях • сегодня

Можно ли использовать equals не переопределяя его

Да, можно, но это может привести к неожиданному поведению. По умолчанию equals() в классе Object сравнивает ссылки, а не содержимое объектов. Это означает, что даже если два объекта содержат одинаковые данные, equals() вернет false, если это разные экземпляры.

Пример:

java
class Person {
    String name;
    Person(String name) { this.name = name; }
}

Person p1 = new Person("Alice");
Person p2 = new Person("Alice");
System.out.println(p1.equals(p2)); // false - сравниваются ссылки

Для логического сравнения объектов нужно переопределять equals() (и обычно hashCode()). Без переопределения equals() работает как ==.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы