Differenza tra rilegatura anticipata e tardiva

Sommario:

Differenza tra rilegatura anticipata e tardiva
Differenza tra rilegatura anticipata e tardiva

Video: Differenza tra rilegatura anticipata e tardiva

Video: Differenza tra rilegatura anticipata e tardiva
Video: Early binding and Late binding | Interview questions in C# | In simple words | By iTech Warrior 2024, Giugno
Anonim

Differenza chiave – Rilegatura anticipata e tardiva

Early Binding e Late Binding sono due concetti legati al polimorfismo. L'associazione anticipata si verifica in fase di compilazione mentre l'associazione tardiva si verifica in fase di esecuzione. La differenza fondamentale tra Early Binding e Late Binding è che Early Binding usa le informazioni sulla classe per risolvere la chiamata al metodo mentre Late Binding usa l'oggetto per risolvere la chiamata al metodo.

I linguaggi di programmazione come Java supportano la programmazione orientata agli oggetti (OOP). È un paradigma che permette di costruire il programma o il software utilizzando oggetti. Ci sono più oggetti nel software. Questi oggetti sono collegati tra loro e trasmettono messaggi utilizzando metodi. Ogni oggetto ha caratteristiche e comportamenti. Le caratteristiche sono descritte dalle proprietà o dagli attributi. I comportamenti sono descritti utilizzando metodi. L'oggetto Studente può avere caratteristiche come nome, età e sono rappresentate da proprietà. L'oggetto Studente può avere comportamenti come studiare e leggere, e sono rappresentati da metodi. Uno dei pilastri principali dell'OOP è il polimorfismo. Consente a un oggetto di comportarsi in più modi. Early Binding e Late Binding sono due concetti in Polymorphism. I metodi di sovraccarico sono legati utilizzando il legame anticipato. I metodi sovrascritti vengono uniti utilizzando la rilegatura tardiva.

Cos'è la rilegatura anticipata?

In Early Binding, le informazioni sulla classe vengono utilizzate per risolvere la chiamata al metodo. L'associazione anticipata si verifica in fase di compilazione. È anche noto come associazione statica. In questo processo, l'associazione si verifica prima che il programma venga effettivamente eseguito. I metodi di sovraccarico sono legati utilizzando il legame anticipato. Fare riferimento al programma sottostante.

Differenza tra rilegatura anticipata e tardiva
Differenza tra rilegatura anticipata e tardiva

Figura 01: Classe di calcolo

Differenza tra rilegatura anticipata e tardiva_Figura 02
Differenza tra rilegatura anticipata e tardiva_Figura 02

Figura 02: Programma principale per la rilegatura anticipata

Secondo il programma sopra, la classe Calculation contiene un metodo add che accetta due valori interi e un altro metodo add che accetta due valori doppi. Nel programma principale viene creato un oggetto di tipo Calcolo. Quando si passano due interi al metodo add, invocherà il metodo add che accetta due interi. Quando si passano due valori doppi al metodo add, invocherà il metodo corrispondente a due valori doppi. Questo processo di associazione si verifica in fase di compilazione. Tutte le informazioni richieste sono note prima del runtime, quindi aumenta l'efficienza del programma e la velocità di esecuzione.

Cos'è la rilegatura tardiva?

In Late Binding, l'oggetto viene utilizzato per risolvere la chiamata al metodo. L'associazione tardiva si verifica in fase di esecuzione. È anche noto come binding dinamico. In questo processo, l'associazione si verifica all'esecuzione del programma. I metodi sovrascritti vengono uniti utilizzando il legame tardivo. Fare riferimento al programma sottostante.

Differenza tra rilegatura anticipata e tardiva_Figura 03
Differenza tra rilegatura anticipata e tardiva_Figura 03

Figura 03: Classe di forma

Differenza tra rilegatura anticipata e tardiva_Figura 04
Differenza tra rilegatura anticipata e tardiva_Figura 04

Figura 04: Classe Circle

Differenza tra rilegatura anticipata e tardiva_Figura 05
Differenza tra rilegatura anticipata e tardiva_Figura 05

Figura 05: Classe Triangolo

Differenza chiave tra rilegatura anticipata e tardiva
Differenza chiave tra rilegatura anticipata e tardiva

Figura 06: Programma principale per la rilegatura tardiva

Secondo il programma sopra, la classe Shape ha un metodo di disegno. Class Circle e classe Triangle estende la classe Shape. Pertanto, queste due classi possono ereditare gli attributi ei metodi della classe Shape. Shape Class è la classe base. Le classi Circle e Triangle sono classi derivate. Anche la classe Circle e la classe Triangle hanno il metodo draw con le proprie implementazioni. Quindi, il metodo draw nella classe Shape viene sovrascritto dai metodi draw delle classi derivate.

Nel programma principale viene creata una variabile di riferimento s di tipo Shape. In fase di compilazione, il compilatore farà riferimento solo al metodo di disegno della classe base. In fase di esecuzione, verranno eseguiti diversi metodi di disegno. Innanzitutto, s punterà all'oggetto di tipo Shape. Quindi, viene invocato il metodo draw della classe Shape. Quindi la s punterà all'oggetto di tipo Circle e invocherà il metodo draw della classe Circle. Infine, s punterà all'oggetto di tipo Triangle e invocherà il metodo draw nella classe Triangle. I metodi vengono chiamati a seconda degli oggetti. Pertanto, l'oggetto viene utilizzato per risolvere la chiamata al metodo in Late Binding. Le informazioni richieste per l'associazione vengono fornite in fase di esecuzione, quindi la velocità di esecuzione è più lenta rispetto all'associazione anticipata.

Qual è la somiglianza tra la rilegatura anticipata e la rilegatura tardiva?

Sia Early Binding che Late Binding sono legati al polimorfismo che è un pilastro dell'OOP

Qual è la differenza tra rilegatura anticipata e rilegatura tardiva?

Rilegatura anticipata vs rilegatura tardiva

Il processo di utilizzo delle informazioni sulla classe per risolvere la chiamata al metodo che si verifica in fase di compilazione è chiamato Early Binding. Il processo di utilizzo dell'oggetto per risolvere la chiamata al metodo che si verifica in fase di esecuzione è chiamato Late Binding.
Tempo di rilegatura
L'associazione anticipata avviene in fase di compilazione. Late Binding si verifica in fase di esecuzione.
Funzionalità
Early Binding usa le informazioni sulla classe per risolvere la chiamata al metodo. Late Binding usa l'oggetto per risolvere la chiamata al metodo.
Sinonimi
La rilegatura anticipata è anche nota come rilegatura statica.. Late Binding è anche noto come binding dinamico.
Ricorrenza
I metodi di sovraccarico sono vincolati utilizzando la rilegatura anticipata. I metodi sovrascritti vengono uniti utilizzando la rilegatura tardiva.
Velocità di esecuzione
La velocità di esecuzione è più veloce nella rilegatura anticipata. La velocità di esecuzione è inferiore nella rilegatura in ritardo.

Riepilogo – Rilegatura anticipata e tardiva

OOP è usato comunemente per lo sviluppo di software. Uno dei pilastri principali dell'OOP è il polimorfismo. Early Binding e Late Binding sono correlati a questo. L'associazione anticipata si verifica in fase di compilazione mentre l'associazione tardiva si verifica in fase di esecuzione. Nel sovraccarico del metodo, il legame avviene utilizzando il legame anticipato. Nell'override del metodo, il legame avviene utilizzando il legame tardivo. La differenza tra Early Binding e Late Binding è che Early Binding usa le informazioni sulla classe per risolvere la chiamata del metodo mentre Late Binding usa l'oggetto per risolvere la chiamata del metodo.

Consigliato: