El enlace dinámico es el proceso de conectar una función (llamada a un procedimiento) a un método específico (secuencia de código) en tiempo de ejecución. Esto significa que la función que debe ejecutarse mediante un método permanece desconocida hasta que se ejecuta -hora. La vinculación dinámica también se conoce como vinculación en tiempo de ejecución o vinculación tardía.
El concepto de enlace está estrechamente relacionado con otros conceptos de programación orientados a objetos, como la herencia y el polimorfismo. El enlace simplemente se refiere al enlace entre la definición del método y la llamada al método. Los objetos reales se utilizan durante el tiempo de ejecución para el enlace. El enlace dinámico permite a los desarrolladores interconectar nuevas secuencias de código y objetos con un sistema sin alterar el código existente, eliminando así las instrucciones de conmutación. La anulación de métodos es un buen ejemplo de enlace dinámico.
El opuesto de la vinculación dinámica es la vinculación estática. A diferencia del enlace dinámico, el enlace estático se produce durante la compilación. A veces se lo denomina enlace anticipado porque el enlace se produce antes de que se ejecute la aplicación. Un buen ejemplo de enlace estático es la sobrecarga de métodos. Otra diferencia clave entre los dos tipos de enlace es que el enlace estático utiliza información de clase para el enlace, mientras que el enlace dinámico utiliza objetos para resolver el enlace. El momento en el que se produce la vinculación afecta el rendimiento general del programa. Si el enlace se produce antes, la seguridad y la eficiencia aumentan, mientras que la flexibilidad disminuye.