메서드 재정의

김민혁·2022년 1월 20일
0

메서드 오버라이딩(overriding)

  • 조상 클래스에 정의된 메서드를 자식 클래스에서 적합하게 수정하는 것
  • 재정의 후에는 재정의한 메서드가 사용된다.

오버라이딩의 조건

  • 메서드 이름이 같아야 한다.
  • 매개 변수의 개수, 타입, 순서가 같아야 한다.
  • 리턴 타입이 같아야 한다.
  • 접근 제한자는 부모보다 범위가 넓거나 같아야 한다.
  • 조상보다 더 큰 예외를 던질 수 없다.

Annotation

  • 사전적 의미: 주석
  • 컴파일러, JVM, 프레임워크 등이 보는 주석
  • 소스코드에 메타 데이터를 삽입하는 형태
    • 소스 코드에 붙여 놓은 라벨
    • 코드에 대한 정보 추가 -> 소스 코드의 구조 변경, 환경 설정 정보 추가 등의 작업 진행
JDK 1.5의 기본 annotation의 예
  • @Deprecated
    • 컴파일러에게 해당 메서드가 deprecated 되었다고 알려줌
    • 해당 메서드에 취소선이 그어지나 사용은 할 수 있음
    • 곧 없어질 수 있다.
  • @Override
    • 컴파일러에게 해당 메서드는 override한 메서드임을 알려줌
    • 재정의되어 있는지 확실하게 확인 할 수 있다.
    • 재정의했다고 생각했으나 안되었을 경우 에러표시를 해줌
  • @SuppressWarnings
    • 컴파일러에게 사소한 warning의 경우 신경 쓰지 말라고 알려줌

Object의 메서드

  • toString 메서드
  • 객체를 문자열로 변경하는 메서드
    • 재정의하지 않을 경우 주소값이 출력됨
  • equals 메서드
    • 두 객체가 같은지를 비교하는 메서드
    • 두 개의 레퍼런스 변수가 같은 객체를 가리키고 있는가?
    • 객체의 주소 비교: == 활용(참고, 문자열을 리터럴로 작성 후 비교하면 같게 나온다)
    • 객체의 내용 비교: equals 재정의
  • hashCode
    • 객체의 해시 코드: 시스템에서 객체를 구별하기 위해 사용되는 정수 값
    • HashSet, HashMap 등에서 객체의 동일성을 확인하기 위해 사용
    • equals 메서드를 재정의할 때는 반드시 hashCode도 재정의할 것
      • 미리 작성된 String이나 Number 등에서 재정의된 hashCode 활용 권장
profile
학생

0개의 댓글