🎯 모든 예제 소스는 ‣에서 확인할 수 있습니다.
✅ Object 메서드들을 언제 어떻게 재정의해야 하는지에 대해 알아본다.
equals 메서드는 재정의하기 쉬워 보이지만 곳곳에 함정이 도사리고 있어서 자칫하면 끔찍한 결과를 초래한다.
문제를 회피하는 가장 쉬운 길은 아예 재정의를 하지 않는 것인데, 다음에서 열거한 상황에 하나에 해당한다면 재정의하지 않는 것이 최선이다.
그렇다면 equals를 재정의해야 할 때는 언제일까?
객체 식별성이 아니라 논리적 동치성을 확인해야 하는데, 상위 클래스의 equals가 논리적 동치성을 비교하도록 재정의되지 않았을 때다.
예를 들어 값 클래스들이 여기 해당하는데, Integer나 String 처럼 값을 표현하는 클래스를 뜻한다.
두 값 객체를 equals로 비교하는 프로그래머는 객체가 같은지가 아니라 값이 같은지를 알고 싶어 할 것이다.