Key Difference – Vinculação antecipada vs tardia
Early Binding e Late Binding são dois conceitos relacionados ao Polimorfismo. O Early Binding ocorre em tempo de compilação enquanto o Late Binding ocorre em tempo de execução. A principal diferença entre Early Binding e Late Binding é que Early Binding usa as informações de classe para resolver a chamada de método, enquanto Late Binding usa o objeto para resolver a chamada de método.
Linguagens de programação como Java suportam Programação Orientada a Objetos (OOP). É um paradigma que permite construir o programa ou o software usando objetos. Existem vários objetos no software. Esses objetos são conectados uns aos outros e passam mensagens usando métodos. Todo objeto tem características e comportamentos. As características são descritas pelas propriedades ou atributos. Os comportamentos são descritos usando métodos. O objeto Aluno pode ter características como nome, idade e são representados por propriedades. O objeto Aluno pode ter comportamentos como estudar e ler, e são representados por métodos. Um dos principais pilares da POO é o polimorfismo. Ele permite que um objeto se comporte de várias maneiras. Early Binding e Late Binding são dois conceitos em polimorfismo. Os métodos de sobrecarga são vinculados usando a vinculação antecipada. Os métodos substituídos são vinculados usando a vinculação tardia.
O que é Early Binding?
No Early Binding, as informações de classe são usadas para resolver a chamada de método. Early Binding ocorre em tempo de compilação. Também é conhecido como ligação estática. Nesse processo, a vinculação ocorre antes que o programa seja executado. Os métodos de sobrecarga são vinculados usando a vinculação antecipada. Consulte o programa abaixo.
Figura 01: Classe de Cálculo
Figura 02: Programa principal para vinculação antecipada
De acordo com o programa acima, a classe Calculation contém um método add que aceita dois valores inteiros e outro método add que aceita dois valores duplos. No programa principal, é criado um objeto do tipo Calculation. Ao passar dois inteiros para o método add, ele invocará o método add que aceita dois inteiros. Ao passar dois valores double para o método add, ele invocará o método correspondente a dois valores double. Esse processo de ligação ocorre em tempo de compilação. Todas as informações necessárias são conhecidas antes do tempo de execução, aumentando assim a eficiência do programa e a velocidade de execução.
O que é Late Binding?
Em Late Binding, o objeto é usado para resolver a chamada de método. Late Binding ocorre em tempo de execução. Também é conhecido como ligação dinâmica. Nesse processo, a vinculação ocorre na execução do programa. Os métodos substituídos são vinculados usando a vinculação tardia. Consulte o programa abaixo.
Figura 03: Classe de Forma
Figura 04: Classe Círculo
Figura 05: Classe Triângulo
Figura 06: Programa principal para Late Binding
De acordo com o programa acima, a classe Shape possui um método draw. A classe Circle e a classe Triangle estendem a classe Shape. Portanto, essas duas classes podem herdar os atributos e métodos da classe Shape. Shape Class é a classe base. As classes Circle e Triangle são classes derivadas. A classe Circle e a classe Triangle também possuem o método draw com suas próprias implementações. Assim, o método draw na classe Shape é substituído pelos métodos draw das classes derivadas.
No programa principal, uma variável de referência s do tipo Shape é criada. Em tempo de compilação, o compilador fará referência apenas ao método draw da classe base. Em tempo de execução, diferentes métodos de desenho serão executados. Primeiro, s apontará para o objeto do tipo Shape. Assim, o método draw da classe Shape é invocado. Então o s apontará para o objeto do tipo Circle e invocará o método draw da classe Circle. Finalmente, s apontará para o objeto do tipo Triangle e invocará o método draw na classe Triangle. Os métodos são chamados dependendo dos objetos. Portanto, o objeto é usado para resolver a chamada de método em Late Binding. As informações necessárias para vinculação são fornecidas em tempo de execução, portanto, a velocidade de execução é mais lenta em comparação com a vinculação inicial.
Qual é a semelhança entre o Early Binding e o Late Binding?
Tanto Early Binding quanto Late Binding estão relacionados ao polimorfismo que é um pilar da OOP
Qual é a diferença entre Early Binding e Late Binding?
Encadernação Antecipada vs Vinculação Tardia |
|
O processo de usar as informações de classe para resolver a chamada de método que ocorre em tempo de compilação é chamado de Early Binding. | O processo de usar o objeto para resolver a chamada de método que ocorre em tempo de execução é chamado de Late Binding. |
Tempo de Ligação | |
Early Binding acontece em tempo de compilação. | Late Binding acontece em tempo de execução. |
Funcionalidade | |
Early Binding usa as informações de classe para resolver a chamada de método. | Late Binding usa o objeto para resolver a chamada de método. |
Sinônimos | |
A vinculação antecipada também é conhecida como vinculação estática.. | Late Binding também é conhecido como dynamic binding. |
Ocorrência | |
Os métodos de sobrecarga são vinculados usando a vinculação inicial. | Métodos substituídos são vinculados usando a vinculação tardia. |
Velocidade de Execução | |
A velocidade de execução é mais rápida na vinculação inicial. | A velocidade de execução é menor na vinculação tardia. |
Resumo – Vinculação antecipada vs tardia
OOP é comumente usado para desenvolvimento de software. Um dos principais pilares da POO é o polimorfismo. Early Binding e Late Binding estão relacionados a isso. Early Binding ocorre em tempo de compilação enquanto Late Binding ocorre em tempo de execução. Na sobrecarga de métodos, a ligação acontece usando a ligação inicial. Na substituição de método, a ligação ocorre usando a ligação tardia. A diferença entre Early Binding e Late Binding é que Early Binding usa as informações de classe para resolver a chamada de método enquanto Late Binding usa o objeto para resolver a chamada de método.