본문 바로가기
언어/Java

Overriding 오버라이딩

by 넬준 2022. 3. 14.


Overriding 규칙

1. static, final, private 메소드는 overriding할 수 없다.

 

- static 메소드를 자식 클래스에서 static 메소드로 다시 정의할 때는 method hiding이 일어난다.

 

2. 메소드 이름, 매개 변수 타입, 리턴 타입이 같아야 한다

3. 부모 클래스에서의 접근 제한보다 더 강할 수 없다.

4. 부모 클래스에서와 같거나 더 좁은 Exception을 발생할 수 있다.

 

 

Static Method Dispatch vs Dynamic Method Dispatch

(정적 바인딩, 동적 바인딩)

 

Static Method Dispatch

- 컴파일 시점에서 컴파일러가 어떤 특정 메소드를 호출할 지 정확히 알고 있는 것이다.

- 컴파일 코드에 이미 정보가 남아있다.

- 오버로딩된 메소드들은 서로 다른 메소드로 분류되기 때문에 이 경우에 해당한다.

 

Dynamic Method Dispatch (Runtime Polymorphism)

- 컴파일 시점에선 어떤 메소드가 호출될 지 모른다.

- 런타임 시점에 실제 호출될 메소드가 결정된다.

- 오버라이딩된 메소드를 호출할 경우에 해당한다.

 

 

 

 


https://codedragon.tistory.com/2522

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

https://minni7.tistory.com/32

 

'언어 > Java' 카테고리의 다른 글

Class 클래스  (0) 2022.04.01
String Constant Pool  (0) 2022.03.25
Integer.valueOf() vs Integer.parseInt()  (0) 2022.02.21
자바 기본 - 다형성  (0) 2021.11.29
자바 기본 - 인터페이스  (0) 2021.11.29

댓글