Vinculação dinâmica é o processo de conectar uma função (chamada de procedimento) a um método específico (sequência de código) em tempo de execução. Isso significa que a função a ser executada por um método permanece desconhecida até ser executada -Tempo. A vinculação dinâmica também é conhecida como vinculação em tempo de execução ou vinculação tardia.
O conceito de ligação está intimamente relacionado a outros conceitos de programação orientada a objetos, como herança e polimorfismo. A vinculação simplesmente se refere ao vínculo entre a definição do método e a chamada do método. Os objetos reais são usados durante o tempo de execução para vinculação. A vinculação dinâmica permite que os desenvolvedores façam a interface de novas sequências de código e objetos com um sistema sem alterar o código existente, eliminando, assim, as instruções switch. A substituição de método é um bom exemplo de vinculação dinâmica.
O oposto da vinculação dinâmica é a vinculação estática. Ao contrário da vinculação dinâmica, a vinculação estática ocorre durante a compilação. Às vezes, é chamado de vinculação antecipada porque a vinculação ocorre antes da execução do aplicativo. Um bom exemplo de vinculação estática é a sobrecarga de método. Outra diferença importante entre os dois tipos de vinculação é que a vinculação estática utiliza informações de classe para vinculação, enquanto a vinculação dinâmica utiliza objetos para resolver a vinculação. O momento em que ocorre a vinculação afeta o desempenho geral do programa. Se a ligação ocorrer antes, a segurança e a eficiência aumentam, enquanto a flexibilidade diminui.