Overriding 오버라이딩

nelljun_kim·2022년 3월 22일
0

Java

목록 보기
1/1
post-thumbnail

Overriding 규칙

  1. static, final, private 메소드는 overriding할 수 없다.
  • static 메소드를 자식 클래스에서 static 메소드로 다시 정의할 때는 method hiding이 일어난다.
  1. 메소드 이름, 매개 변수 타입, 리턴 타입이 같아야 한다
  2. 부모 클래스에서의 접근 제한보다 더 강할 수 없다.
  3. 부모 클래스에서와 같거나 더 좁은 Exception을 발생할 수 있다.

Static/Dynamic Method Dispatch


Static Method Dispatch

  • 컴파일 시점에서 컴파일러가 어떤 특정 메소드를 호출할 지 정확히 알고 있는 것이다.
  • 컴파일 코드에 이미 정보가 남아있다.
  • 오버로딩된 메소드들은 서로 다른 메소드로 분류되기 때문에 이 경우에 해당한다.

Dynamic Method Dispatch (Runtime Polymorphism)

  • 컴파일 시점에선 어떤 메소드가 호출될 지 모른다.
  • 런타임 시점에 실제 호출될 메소드가 결정된다.
  • 오버라이딩된 메소드를 호출할 경우에 해당한다.


https://codedragon.tistory.com/2522
https://ar-tec.tistory.com/91

profile
세상을 다양하게 하는 개발자

0개의 댓글