• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

equals()

24.03.28 23:17 작성 24.03.28 23:38 수정 조회수 152

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

David님의 프로필

David

2024.03.29

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

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

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

감사합니다.