Respuesta
No.
dinámico de Despacho - El/firma/cadena override grupo método real está obligado en tiempo de compilación. El método llamado depende del tipo de tiempo de ejecución real del objeto, pero no se produce una interpretación real. Seguirá siendo una versión del método estáticamente vinculado.
Aquí hay un ejemplo en C#.
class Foo {
public override string ToString() { return "foo's ToString"; }
}
void Example(object p1) {
p1.ToString();
}
La llamada a p1.ToString es un ejemplo de despacho dinámico. El código se une de forma estática al método ToString. Sin embargo, es un método virtual, por lo que el llamado .ToString() real no se conocerá hasta el tiempo de ejecución, pero es el garantizado para llamar a un método .ToString(). Será el ToString del tipo real de p1. Entonces, si p1 es realmente una instancia de Foo, se llamará a Foo :: ToString.
Enlace dinámico: el método real está vinculado en el tiempo de ejecución y está sujeto a interpretaciones basadas en la semántica del lenguaje o marco de reflexión. Esto puede fallar debido a la imposibilidad de vincular.
Ejemplo:
void CallBar(object o) {
var method = o.GetType().GetMethod("Bar");
method.Invoke(new object[] {o});
}
En este caso, estamos tratando de invocar el método "bar" en el objeto en cuestión. La palabra clave está intentando. Es completamente posible que "Bar" no exista en el objeto. Pero esto se determina en tiempo de ejecución vinculando dinámicamente al método "Bar".
Lo que tienen más en común es que ambas operaciones (probablemente) dependen del tipo de tiempo de ejecución del objeto.
EDITAR
añadido algunos ejemplos más, a petición de la OP
Asignación dinámica o medios de unión dinámicas que cuando se llama a un método, la elección de la implementación del método real para ejecutar sucede mientras el programa se está ejecutando , porque estáticamente no hay suficiente información disponible. Se basará en el nombre del método, el tipo de receptor real (polimorfismo de subtipo) y/o los tipos de argumentos reales (sobrecarga), o incluso una coincidencia de patrones más sofisticada.
La vinculación dinámica es, según Wikipedia, una forma de envío dinámico en los lenguajes de OO donde el método real para invocar se basa en el nombre de la operación y el receptor real en tiempo de ejecución.
This article introduce un enlace dinámico de tipo estático (enlace dinámico ayudado por el sistema de tipo estático) y un enlace dinámico totalmente realizado en tiempo de ejecución. Trata la sobrecarga como una forma de enlace dinámico también.
Estoy seguro de que puede encontrar muchos otros artículos que hablan sobre el envío dinámico o el enlace. Por lo que puedo decir, la terminología no es fija y está "sobrecargada". Lo mejor es describir lo que realmente sucede en el tiempo de ejecución (el proceso exacto de cómo se elige un método en particular) en lugar de tratar de definir correctamente cualquiera de estos dos términos.
- 1. Diferencia entre enlace estático y enlace dinámico
- 2. Enlace dinámico == enlace tardío en Java o no?
- 3. enlace dinámico con LLVM
- 4. Diferencia entre el enlace dinámico en tiempo de carga y el enlace dinámico en tiempo de ejecución
- 5. Pregunta sobre la sobrecarga de Java y el enlace dinámico
- 6. Enlace estático de Android vs enlace dinámico contra glibc
- 7. Enlace de tiempo de ejecución estático/dinámico
- 8. Enlace dinámico en la plantilla WGT DataGridCell
- 9. Enlace de valor dinámico del componente JSF
- 10. enlace MVC make action realiza un envío
- 11. Fuerza GCC al enlace estático p. pthreads (y no enlace dinámico)
- 12. Enlace estático o dinámico de CRT, MFC, ATL, etc.
- 13. ¿Cómo se hace el enlace dinámico con KnockOut JS?
- 14. ¿Es posible un marco de enlace dinámico en iOS?
- 15. de varios niveles anidados TreeView con enlace dinámico en WPF
- 16. SolrJ y dinámico campos
- 17. clojure y ^: dinámico
- 18. dinámico, LINQ y Select()
- 19. ¿Cierres y alcance dinámico?
- 20. El método de envío MSXML2.XMLHTTP funciona con el enlace anticipado, falla con el enlace tardío
- 21. Diferencia entre tiempo de carga y enlace dinámico en tiempo de ejecución
- 22. Proxy dinámico y excepciones marcadas
- 23. Emular el envío dinámico en C++ en función de los parámetros de plantilla
- 24. Ububtu, opencv y enlace
- 25. ruta de navegación dinámico simple
- 26. dinámico Jquery Splitter Plugin
- 27. Envío de cookies usando HttpCookieCollection y CookieContainer
- 28. Pago y envío limpio de TFS 2008
- 29. jQuery Mobile y envío de formulario
- 30. Pago y envío svn usando gradle
No estoy seguro de seguir lo que dices. Creo que ayudaría si dieras una definición precisa de lo que quieres decir con los términos de enlace y envío. (No despachar media invocación de métodos, en cuyo caso, en algún momento de enlace dinámico que terminamos con una instrucción de salto/llamada que es un despacho ??) –
añadido algunos ejemplos para ayudar a aclarar esto – JaredPar
De acuerdo con este documento: http : //citeseerx.ist.psu.edu/viewdoc/summary? doi = 10.1.1.33.4292 "El mecanismo que implementa el enlace dinámico se llama despacho dinámico." De acuerdo con esto, JaredPar está equivocado. – cvogt