Diferença entre vinculação antecipada e tardia

Índice:

Diferença entre vinculação antecipada e tardia
Diferença entre vinculação antecipada e tardia

Vídeo: Diferença entre vinculação antecipada e tardia

Vídeo: Diferença entre vinculação antecipada e tardia
Vídeo: What is the difference between early binding and late binding in CSharp? DotNet Question 9 of 100: 2024, Novembro
Anonim

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.

Diferença entre vinculação antecipada e tardia
Diferença entre vinculação antecipada e tardia

Figura 01: Classe de Cálculo

Diferença entre vinculação antecipada e tardia_Figura 02
Diferença entre vinculação antecipada e tardia_Figura 02

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.

Diferença entre vinculação antecipada e tardia_Figura 03
Diferença entre vinculação antecipada e tardia_Figura 03

Figura 03: Classe de Forma

Diferença entre vinculação antecipada e tardia_Figura 04
Diferença entre vinculação antecipada e tardia_Figura 04

Figura 04: Classe Círculo

Diferença entre vinculação antecipada e tardia_Figura 05
Diferença entre vinculação antecipada e tardia_Figura 05

Figura 05: Classe Triângulo

Diferença chave entre vinculação antecipada e tardia
Diferença chave entre vinculação antecipada e tardia

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.

Recomendado: