바인딩은 메소드 호출과 메소드 실제 구현 사이의 링크를 생성하는 메커니즘입니다. Java의 다형성 개념에 따라 객체는 다양한 형태를 가질 수 있습니다. 개체 형식은 컴파일 시간과 런타임에 확인할 수 있습니다. 메서드 호출과 메서드 구현 간의 연결이 컴파일 시간에 해결되면 정적 바인딩이라고 하고 런타임에 해결되면 동적 바인딩이라고 합니다. 동적 바인딩은 개체를 사용하여 바인딩을 해결하지만 정적 바인딩은 클래스 및 필드의 유형을 사용합니다.
Sr. 아니요. | 키 | 정적 바인딩 | 동적 바인딩 |
---|---|---|---|
1 | 기본 | 컴파일 시간에 해결됩니다. | 런타임에 해결됩니다. |
2 | 해결 메커니즘 | 클래스 및 필드의 정적 바인딩 사용 유형 | 동적 바인딩은 개체를 사용하여 바인딩을 해결합니다. |
3 | 예 | 오버로딩은 정적 바인딩의 예입니다. | 메서드 재정의는 동적 바인딩의 예입니다. |
4. | 방법 유형 | 개인, 최종 및 정적 메서드와 변수는 정적 바인딩을 사용합니다. | 가상 메서드는 동적 바인딩을 사용합니다. |
정적 및 동적 바인딩의 예
public class FastFood { public void create() { System.out.println("Creating in FastFood class"); } } public class Pizza extends FastFood { public void create() { System.out.println("Creating in Pizza class"); } } public class Main { public static void main(String[] args) { FastFood fastFood= new FastFood(); fastFood.create(); //Dynamic binding FastFood pza= new Pizza(); pza.create(); } }