디스패치 (Dispatch)
프로그램이 어떤 메소드를 호출할 것인가를 결정하여 그것을 실행하는 과정을 말한다.
디스패치에는 2가지가 있다.
Static Dispatch
Dynamic Dispatch
아래 코드에서 각각의 디스패치가 일어난다.
정적인 디스패치 (Static Dispatch)
public class Dispatch{
static class Service{
void run(){
System.out.println("run");
}
void run(String msg){
System.out.println(msg);
}
}
public static void main(String[] args){
new Service().run();
}
}
동적인 디스패치 (Dynamic Dispatch)
public class Dispatch{
static abstract class Service{
abstract void run();
}
static class MyService1 extends Service{
@Overried
void run(){
System.out.println("1");
}
}
static class MyService2 extends Service{
@Overried
void run(){
System.out.println("2");
}
}
public static void main(String[] args){
MyService svc = new MyService1();
svc.run();
}
}
'Development > Java' 카테고리의 다른 글
Java Wrapper Class 의 캐싱 (0) | 2017.07.18 |
---|---|
익명 클래스 → 람다 표현식 변환 시 주의할 점. (0) | 2017.01.24 |
자바8 util 패키지에서, 람다 표현식 연습해보기 (0) | 2017.01.09 |
람다 표현식에서 참조하는 지역 변수가 꼭 final이어야 하는 이유 (0) | 2017.01.08 |
자바8. 람다 표현식에 대하여. (0) | 2017.01.04 |