Diferença principal - vinculação antecipada versus 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 a 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 a partir de objetos. Existem vários objetos no software. Esses objetos são conectados entre si e passam mensagens usando métodos. Cada objeto possui características e comportamentos. As características são descritas pelas propriedades ou atributos. Os comportamentos são descritos por meio de 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 eles são representados por métodos. Um dos principais pilares da OOP é o polimorfismo. Ele permite que um objeto se comporte de várias maneiras. Early Binding e Late Binding são dois conceitos no polimorfismo. Os métodos de sobrecarga são ligados usando ligação inicial. Os métodos substituídos são vinculados por meio de vinculação tardia.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é vinculação inicial
3. O que é vinculação tardia
4. Semelhanças entre vinculação inicial e tardia
5. Comparação lado a lado - Vinculação inicial versus tardia na forma tabular
6. Resumo
O que é vinculação antecipada?
Em Early Binding, as informações de classe são usadas para resolver a chamada de método. A vinculação antecipada ocorre em tempo de compilação. Também é conhecido como vinculação estática. Nesse processo, a vinculação ocorre antes de o programa realmente ser executado. Métodos de sobrecarga são ligados usando ligação inicial. 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 Cálculo. Ao passar dois inteiros para o método add, ele invocará o método add que aceita dois inteiros. Ao passar dois valores duplos para o método add, ele invocará o método correspondente a dois valores duplos. Esse processo de vinculação ocorre em tempo de compilação. Todas as informações necessárias são conhecidas antes do tempo de execução, portanto, aumenta 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. A vinculação tardia ocorre no tempo de execução. Também é conhecido como vinculação dinâmica. Nesse processo, a vinculação ocorre na execução do programa. Os métodos substituídos são vinculados por meio de vinculação tardia. Consulte o programa abaixo.
Figura 03: Classe de forma
Figura 04: Classe de 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 de desenho. 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. A classe de forma é 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. Portanto, 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 Forma é criada. Em tempo de compilação, o compilador apenas fará referência ao método de desenho da classe base. Em tempo de execução, diferentes métodos de desenho serão executados. Primeiro, s apontará para o objeto do tipo Forma. Portanto, o método draw da classe Shape é invocado. Em seguida, o s irá apontar para o objeto do tipo Circle e invocará o método draw da classe Circle. Por fim, s apontará para o objeto do tipo Triangle e chamará 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 a vinculação inicial e a vinculação tardia?
Tanto a Early Binding quanto a Late Binding estão relacionadas ao polimorfismo, que é um pilar da OOP
Qual é a diferença entre vinculação antecipada e vinculação tardia?
Artigo Diff meio antes da tabela
Vinculaçã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 | |
A vinculação antecipada ocorre em tempo de compilação. | A vinculação tardia ocorre 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. | A vinculação tardia também é conhecida como vinculação dinâmica. |
Ocorrência | |
Os métodos de sobrecarga são ligados usando ligação inicial. | Os métodos substituídos são vinculados por meio de 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. Final
OOP é comumente usado para desenvolvimento de software. Um dos principais pilares da OOP é 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 do método, a ligação acontece usando a ligação inicial. Na substituição de método, a ligação acontece 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.