Programming Languages/Java

[5장] Java의 메소드 오버라이딩

마크투비 2021. 5. 4. 13:03

메소드 오버라이딩(Method Overriding)

메소드 오버라이딩의 개념

  • 서브 클래스에서 슈퍼 클래스의 메소드 중복 작성
  • 슈퍼 클래스의 메소드 무력화, 항상 서브 클래스에 오버라이딩한 메소드가 실행되도록 보장됨
  • “메소드 무시하기”로 번역되기도 함

오버라이딩 조건

  • 슈퍼 클래스 메소드의 원형(메소드 이름, 인자 타입 및 개수, 리턴 타입) 동일하게 작성

서브 클래스 객체와 오버라이딩된 메소드 호출 - 오버라이딩한 메소드가 실행됨

오버라이딩의 목적, 다형성 실현

  • 하나의 인터페이스(같은 이름)에 서로 다른 구현
  • 슈퍼 클래스의 메소드를 서브 클래스에서 각각 목적에 맞게 다르게 구현
  • 사례

동적 바인딩 - 오버라이딩된 메소드 호출

super 키워드로 슈퍼 클래스의 멤버 접근

  • 슈퍼 클래스의 멤버를 접근할 때 사용되는 레퍼런스
    • super.슈퍼클래스의멤버
  • 서브 클래스에서만 사용
  • 슈퍼 클래스의 필드 접근
  • 슈퍼 클래스의 메소드 호출 시
  • super로 이루어지는 메소드 호출 : 정적 바인딩

오버로딩 vs. 오버라이딩

 

 

 

 

Reference

- 명품 자바 에센셜