Java - Method Dispatch
- Method Dispatch는 해당 메서드가 언제 확정되는 때를 의미한다.
1. Static Method Dispatch (정적 메서드 디스패치)
-
정적 메서드 디스패치는 컴파일 시에 어떤 메서드를 호출하는지 정해지는 메커니즘으로, 오버로딩 메서드가 이에 해당한다.
-
오버로딩 메서드는 받는 매개변수가 다른 것 등으로 판단하므로 컴파일 시에 정해진다.
-
static 메서드 또한 마찬가지로 정적 메서드 디스패치에 속한다.
-
정적 바인딩이라고도 한다.
-
성능면에서 좋다. ( 추가적인 오버헤드가 없기 때문 )
2. Dynamic Method Dispatch (동적 메서드 디스패치)
-
다이나믹 메서드 디스패치는 런타임시에 결정되는 메커니즘이다.
-
오버라이딩 된 메서드가 이에 해당하는데, 그 이유는 해당 메서드가 어떤 구현체에서 오버라이딩 된 메서드인지가 런타임에서 결정되기 때문이다.
-
동적 바인딩이라고도 한다.
-
상속이 가능하다.