인프런 커뮤니티 질문&답변

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

김영한의 실전 자바 - 중급 1편

equals() - 2. 구현

equals()

작성

·

302

·

수정됨

0

String str1 = "Hello" ;
String str2 = "Hello" ;
이때에는 boolean result = str1.equals(str2) ; 를 하면 result = true; 인 이유가 무엇이고,

Dog dog = new Dog("HI") ;
Car car = new Car("HI") ;
이떄에는 boolean result = dog.equals(car) ; 이건 result 가 false 인 이유가 무엇인가요 ?

저 위의 String 예시에서는 object classs 의 equals 메서드를 사용하는게 아닌건가요 ?

 

그리고 만약 Object class 의 equals 메서드를 애초에 equals() 수업에서 오버라이딩 한것처럼 만들면 되는거 아닌가요 ? ( 오버라이딩의 수고스러움을 덜기 위해)

답변 1

0

안녕하세요. ghuhan18님, 공식 서포터즈 David입니다.

  1. 이전 편인 equals() - 1. 동일성과 동등성 에서 질문하신 부분을 설명하고 있사오니 참고해 주세요.

  2. Object의 equals는 동일성을 비교하도록 구현되어 있습니다. 동등성을 비교하려면 구체적인 데이터가 필요한데, Object를 상속하는 클래스마다 비교해야 하는 필드가 다르므로 동등성을 비교하도록 구현하기 어렵습니다.

감사합니다.

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기