Загальні вимоги до equals
Рефлексивність. Для будь-якого посилання ref ref.equals(ref) повинно завжди
давати true.
Симетричність. x.equals(y)дорівнюєо true тоді і тільки тоді, коли y.equals(x).
Транзитивність. Якщо x.equals(y), y.equals(z), то x.equals(z).
Несуперечливість. Різні виклики equals для тих же об'єктів повинні давати той самий результат, якщо самі об'єкти не змінилися.
Порівняння з null. Для кожного не-null посилання ref.equals(null) завжди false.
Часто перевіряється ще й відповідність типів.