1. 전제조건: 객체 상속
- 변수형 객체를 제외한 나머지 객체를 할당할 경우 해당 객체의 주소값을 저장한다. (Call by reference)
2. 생성객체 - 상속객체 주소값 비교
- 생성객체와 상속객체의 hashCode() 값을 비교해 동일 주소값 참조 여부 확인
3. 생성객체 변경 테스트 (해시코드 비교)
- (일치) 기존객체 내부 데이터 변경
- (일치) 기존객체 내부 데이터 초기화: .clear()
- (불일치) 기존객체 null / new : 생성객체의 hashCode는 변경되며, 상속객체 hashCode는 변경 전 객체의 hashCode를 그대로 유지된다. (생성객체 내 객체 상속이 중단됨.)
※ 상속 객체 내 특정 객체를 제거하고 싶을 경우 제거객체 차상위(부모) 객체에서 상속 값을 제거한다.