Реализация Object.equals является:
public class Object {
public boolean equals(Object obj) {
return (this == obj);
}
}
Это возвращает true
только тогда, когда obj
точно такой же объект, как this
. Как сказал Питер Лоури в своем ответе, определение equals
для любого другого класса полностью зависит от того, как оно кодируется. Нет даже требования, чтобы эти два объекта были одним и тем же классом или даже иерархически связанными классами.
Обратите внимание, что определение equals
без определения hashcode
обычно считается плохой практикой. Существует требование, чтобы два объекта, которые являются equal
, должны возвращать один и тот же хэш-код.
Обратите внимание, что '==' никогда не может изменить значение, но 'equals()' can. –