Встречается на собеседованиях • сегодня
Почему объекты разных классов с одинаковыми значениями полей не будут эквивалентны
Объекты разных классов не будут эквивалентны, даже если их поля содержат одинаковые значения, потому что:
- Разные классы - метод
equals()по умолчанию (изObject) проверяет принадлежность к одному классу черезinstanceofилиgetClass() - Разное поведение - классы могут иметь разную логику в методах, даже если поля совпадают
Пример:
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).

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