Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 정적 바인딩과 동적 바인딩의 차이점

<시간/>

바인딩은 메소드 호출과 메소드 실제 구현 사이의 링크를 생성하는 메커니즘입니다. 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();
   }
}