동적바인딩 예제

컴파일 타임에 매핑된 경우 정적 또는 초기 바인딩입니다. 바인딩은 다형성을 구현하는 언어의 필수적인 부분이며 정적 바인딩과 동적 바인딩의 의미를 이해하여 응용 프로그램이 원하는 대로 작동하는지 확인하는 것이 중요합니다. 포인트 4를 설명하십시오 (개인, 정적 및 최종 메서드는 정적 바인딩을 표시합니다. 왜냐하면, 그들은 재정의 할 수 없기 때문입니다.) diffs에서. 공용 메서드에 오버로드할 수 있습니다 cpp 바인딩에 이 문서는 바인딩에 대한 추가 정보를 제공합니다. 그것은 내가 더 잘 이해하는 데 도움이. 컴파일러를 디자인하는 동안 정적 바인딩과 동적 바인딩 사이에는 세 가지 주요 차이점이 있으며 변수 및 프로시저가 런타임 환경으로 전송되는 방법은 다음과 같습니다. 이러한 차이점은 다음과 같습니다 : 그러나 B에는 @_@, B클래스에서 캐스팅 된 객체가 B 클래스의 메서드만 이 클래스에서 캐스팅된 객체는 실제로 A가 클래스 B로 재재정적이라는 것을 잊지 말고, A가 정적 위의 탐색에서와 같이 모든 것을 공유한다는 것을 잊지 말아야 합니다. 바인딩은 정적 대 동적 바인딩을 검색하는 실제 개체가 아닌 참조를 다루며 이를 발견하여 매우 유용합니다. 내가 그것을 얻을하지 않는 예제와 함께 이러한 개념을 설명해 주셔서 대단히 감사합니다, 두 번째 예는 메소드에 «재정의»가없는, 두 번째 예는 동일하고 그게 다야. 누락 된 것이 있습니까? 감사. 아주 잘 예제와 함께 설명.

매우 도움이, 유익하고 포인트 답변. 정적 및 동적 바인딩은 v를 멋지게 설명합니다!!! 감사!!!!! 런타임 동안 실제 개체는 바인딩에 사용됩니다. 예를 들어 위의 그림에서 «a1.method()» 호출의 경우 `a1`이 가리키는 실제 개체의 메서드()가 호출됩니다. «a2.method()» 호출의 경우 `a2`가 가리키는 실제 개체의 메서드()가 호출됩니다. 이러한 유형의 바인딩을 동적 바인딩이라고 합니다. 정적, 최종 및 개인 메서드의 바인딩은 정적 바인딩이 더 나은 성능을 제공하고 재정의할 수 없으므로 항상 일부 로컬 클래스의 개체에 의해 액세스되므로 항상 정적 바인딩입니다. 그래서, 이것은 자바에서 정적 바인딩 대 동적 바인딩에 관한 것이었습니다. 당신이 우리의 설명을 좋아 바랍니다. 컴파일러는 컴파일 타임에 바인딩을 알고 있기 때문입니다. 예를 들어 인터페이스에서 메서드를 호출하는 경우 컴파일러는 알 수 없으며 메서드가 호출된 실제 개체가 여러 가지 중 하나일 수 있기 때문에 런타임에 바인딩이 해결됩니다. 따라서 런타임 또는 동적 바인딩입니다.

정적 바인딩은 아래 그림과 같이 입증될 수 있습니다. 출력이 정적 바인딩 예제에서 본 것과 다른 것을 볼 수 있듯이, 이 경우 개체obj를 만드는 동안 개체의 형식은 Boy 형식으로 결정되므로 Boy 클래스의 메서드가 호출됩니다. 런타임시 결정되는 개체의 형식을 기억합니다. 이것은 우리가 위에서 본 것과 같은 예입니다. 여기서 유일한 차이점은 이 예제에서 이러한 메서드가 정적, 개인 및 최종 메서드가 아니기 때문에 재정의가 실제로 발생한다는 것입니다. 재정의 메서드에 대한 호출을 재정의하는 경우 런타임시 개체 유형에 따라 결정되므로 늦은 바인딩이 발생합니다. 예를 들어 이 것을 이해할 수 있습니다: 두 예제는 동일하며 기본적으로 공용 void myMethod(Object obj){(자동차).drive(); 이 경우 컴파일러는 컴파일하는 동안 개체 참조를 확인할 수 없습니다. 따라서 이 문제를 런타임 중에만 해결할 수 있습니다. 이를 동적 바인딩이라고 합니다. 컴파일된 시간(컴파일러)에서 개체 의 형식을 결정하는 경우 정적 바인딩이라고 합니다. 위에서 언급했듯이 메서드 호출에 대한 메서드 정의 연결을 바인딩이라고 합니다.

바인딩에는 정적 바인딩과 동적 바인딩의 두 가지 유형이 있습니다.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies