Нет, не всегда.
Метод equals
в языке Java (объявленный в классе java.lang.Object
) отвечает за сравнение объектов на равенство. Переопределение требуется, когда стандартная реализация, основанная на сравнении ссылок (this == obj
), не соответствует логике равенства для данного класса.
Когда переопределять equals
необходимо:
Person
с одинаковым именем и возрастом могут считаться "равными" логически, даже если это разные экземпляры класса.HashSet
или HashMap
. В этом случае также необходимо переопределить hashCode
.Когда переопределять equals
не нужно:
equals
(симметричность, транзитивность, согласованность, ненулевость).Пример переопределения equals
:
java
Нет, не всегда.
Метод equals
в языке Java (объявленный в классе java.lang.Object
) отвечает за сравнение объектов на равенство. Переопределение требуется, когда стандартная реализация, основанная на сравнении ссылок (this == obj
), не соответствует логике равенства для данного класса.
Когда переопределять equals
необходимо:
Person
с одинаковым именем и возрастом могут считаться "равными" логически, даже если это разные экземпляры класса.HashSet
или HashMap
. В этом случае также необходимо переопределить hashCode
.Когда переопределять equals
не нужно:
equals
(симметричность, транзитивность, согласованность, ненулевость).Пример переопределения equals
:
java
Register or sign in to get access to full answers for all questions from the question bank.