Growth-Collectors / effective-java

repository for effective java study
3 stars 2 forks source link

아이템 52. 다중정의는 신중히 사용하라 #52

Open HanaHww2 opened 1 year ago

YunDaHyee commented 1 year ago


메서드 재정의(override, 오버라이드)

상위 클래스가 정의한 것과 똑같은 시그니처의 메서드를 하위 클래스에서 다시 정의한 것 => 호출 시, 재정의한 메서드가 실행이 됨

특징


다중정의(overloading, 오버로딩)

: 같은 이름을 가지지만 서로 다른 매개변수 형식을 가지고 있는 메서드를 여러 개 정의하는 것.

특징


다중 정의 시, 혼란 주는 경우 (TODO 조금 더 채워넣을 예정)

  • 제네릭, 오토박싱 자바 4까지는 모든 기본 타입이 모든 참조 타입과 근본적으로 달랐지만 자바 5부터는 List 인터페이스가 취약해졌다.
  • 자바 8에서 도입된 람다, 메서드 참조


요약

일반적으로 매개변수가 같을 때는 다중정의를 피하고
피할 수 없다면 헷갈릴 만한 매개변수는 형변환 해서 "근본적으로" 다른 다중정의 메서드가 선택되도록 해야한다.
그래야 다중정의 메서드나 생성자를 효과적으로 사용할 수 있고 의도대로 동작시킬 수 있다.


YunDaHyee commented 1 year ago

제네릭, 오토박싱, 람다, 메서드 참조가 다중정의에서 혼란을 주는 케이스를 더 찾아봐야 되겠습니다.. 잘 이해가 안가네요ㅠㅠ

jioome commented 1 year ago

예시 코드들을 공부를 더 해봐야겠네요,,,