바인딩은 메서드 호출과 메서드의 실제 구현 사이에 링크를 생성하는 메커니즘입니다. Java의 다형성 개념에 따르면 객체는 다양한 형태를 가질 수 있습니다. 개체 양식은 컴파일 타임과 런타임에 확인할 수 있습니다. 메서드 호출과 메서드 구현 사이의 연결이 컴파일 타임에 해결되면 이를 정적 바인딩이라고 부르고, 런타임에 해결되면 이를 동적 바인딩이라고 합니다. 동적 바인딩은 개체를 사용하여 바인딩을 해결하는 반면 정적 바인딩은 클래스와 필드 유형을 사용합니다.
늙은이. 아니요. | 키 | 정적 바인딩 | 동적 바인딩 |
---|---|---|---|
1 p> |
기본 |
컴파일 시간에 구문 분석됨 | 런타임에 해결 |
2 |
파싱 메커니즘 |
정적 바인딩은 클래스와 필드 유형을 사용합니다 | 객체를 사용한 동적 바인딩 바인딩을 해결하려면 |
3 |
Example | 오버로딩은 정적 바인딩의 예입니다. |
메서드 재정의는 동적입니다. 딩 예 |
4. |
메서드 유형 |
Private, final 및 static 메서드와 변수는 정적 바인딩을 사용합니다. |
가상 메서드는 동적 바인딩을 사용합니다. td> |
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(); } }
위 내용은 Java의 정적 바인딩과 동적 바인딩의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!