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

Почему объекты разных классов с одинаковыми значениями полей не будут эквивалентны

Объекты разных классов не будут эквивалентны, даже если их поля содержат одинаковые значения, потому что:

  1. Разные классы - метод equals() по умолчанию (из Object) проверяет принадлежность к одному классу через instanceof или getClass()
  2. Разное поведение - классы могут иметь разную логику в методах, даже если поля совпадают

Пример:

java
class A { String name = "test"; }
class B { String name = "test"; }

A a = new A();
B b = new B();
System.out.println(a.equals(b)); // false - разные классы

Для сравнения объектов разных классов нужно явно реализовать equals(), учитывая эту ситуацию. Но это противоречит контракту equals(), который требует рефлексивности (x.equals(x) == true).

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

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

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

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