Differenza Tra Override E Sovraccarico In C

Sommario:

Differenza Tra Override E Sovraccarico In C
Differenza Tra Override E Sovraccarico In C

Video: Differenza Tra Override E Sovraccarico In C

Video: Differenza Tra Override E Sovraccarico In C
Video: Push Up Perfetti e Come Usarli Per Mettere Massa 2024, Potrebbe
Anonim

Differenza chiave: override vs sovraccarico in C #

La differenza fondamentale tra l'override e l'override in C # è che l'associazione della chiamata al metodo sottoposta a override alla relativa definizione avviene in fase di esecuzione mentre l'associazione della chiamata del metodo sovraccarico alla relativa definizione avviene in fase di compilazione.

C # è un linguaggio di programmazione generico sviluppato da Microsoft. Il vantaggio principale di C # è che supporta la programmazione orientata agli oggetti (OOP). Uno dei pilastri dell'OOP è il polimorfismo. Dà a un oggetto di avere più comportamenti. Esistono due tipi di polimorfismo noti come override e sovraccarico. Questo articolo illustra la differenza tra l'override del metodo e l'override in C #.

CONTENUTI

1. Panoramica e differenza fondamentale

2. Che cos'è l'override in C #

3. Che cos'è l'overload in C #

4. Somiglianze tra override e overloading in C #

5. Confronto affiancato - Override vs sovraccarico in C # in formato tabulare

6. Riepilogo

Che cos'è l'override in C #?

C'è un altro concetto importante in OOP è l'ereditarietà. Serve a utilizzare attributi e metodi della classe già esistente. Migliora la riusabilità del codice. La classe già esistente è la classe base e la nuova classe è nota come classe derivata. Nell'override del polimorfismo, dovrebbero esserci una classe base e una classe derivata. L'associazione della chiamata al metodo sovrascritta alla definizione avviene in fase di esecuzione. Un esempio è il seguente.

Differenza tra override e sovraccarico in C #
Differenza tra override e sovraccarico in C #

Figura 01: programma C # con override

Secondo il programma precedente, la classe Shape è la classe base e contiene il metodo di visualizzazione. Class Rectangle e Triangle sono classi derivate. Queste classi derivate hanno anche la stessa visualizzazione del metodo con le proprie implementazioni.

Innanzitutto, viene creata la variabile di riferimento obj. Punta all'oggetto Shape. Quindi, verrà eseguito il metodo di visualizzazione della classe Shape. Quindi, la variabile di riferimento punta all'oggetto Rettangolo. Quindi, verrà eseguito il metodo di visualizzazione della classe Rectangle. Infine, la variabile di riferimento punta all'oggetto Triangolo. Quindi, verrà eseguito il metodo di visualizzazione della classe Triangle. Il metodo di visualizzazione della classe base viene sovrascritto dai metodi di visualizzazione delle classi derivate.

Il metodo da eseguire viene deciso in fase di esecuzione. La classe Shape è scritta con la parola chiave "virtual". Le classi Rectangle e Triangle vengono scritte con la parola chiave "override". Se queste parole chiave non vengono utilizzate, l'output stamperà il contenuto del metodo di visualizzazione della classe Shape per tutti.

Che cos'è l'overload in C #?

Nel sovraccarico, più metodi hanno lo stesso nome ma con parametri diversi. I parametri possono essere di diverso tipo. I metodi possono anche avere un numero diverso di parametri. Il sovraccarico del metodo si verifica nella stessa classe. L'associazione di metodi sovraccaricati alla definizione avviene in fase di compilazione. Fare riferimento al programma C # seguente.

Differenza chiave tra override e sovraccarico in C #
Differenza chiave tra override e sovraccarico in C #

Figura 02: programma C # con sovraccarico

Secondo il programma sopra, la classe A ha due metodi con lo stesso nome chiamati sum. Hanno diversi tipi di parametri. Nel programma principale, viene creato un oggetto di A. La sum (2,3) richiamerà il metodo sum con numeri interi. La somma (5.1, 7.94) richiamerà il metodo sum con valori double. Entrambi i metodi hanno lo stesso nome e lo stesso numero di parametri. Ma i tipi di parametri sono diversi. Il metodo richiesto viene chiamato di conseguenza. Il sovraccarico può verificarsi anche se i nomi dei metodi e i tipi di parametri sono gli stessi ma il numero di parametri è diverso.

Qual è la somiglianza tra override e overload in C #?

Sia l'override che l'overload in C # sono tipi di polimorfismo

Qual è la differenza tra override e sovraccarico in C #?

Articolo diff. Al centro prima della tabella

Override vs sovraccarico in C #

L'override in C # consiste nel fornire un'implementazione specifica in un metodo della classe derivata per un metodo già esistente nella classe base. L'overload in C # consiste nel creare più metodi con lo stesso nome con implementazioni diverse.
Parametri
In C # Overriding, i metodi hanno lo stesso nome, gli stessi tipi di parametro e lo stesso numero di parametri. In C # Overloading, i metodi hanno lo stesso nome ma un numero diverso di parametri o un diverso tipo di parametri.
Evento
In C #, l'override si verifica all'interno della classe base e della classe derivata. In C #, il sovraccarico si verifica all'interno della stessa classe.
Tempo vincolante
L'associazione della chiamata al metodo sovrascritta alla sua definizione avviene in fase di esecuzione. L'associazione della chiamata al metodo sovraccaricata alla sua definizione avviene in fase di compilazione.
Sinonimi
L'override è chiamato polimorfismo di runtime, polimorfismo dinamico o associazione tardiva. Il sovraccarico è chiamato polimorfismo in fase di compilazione, polimorfismo statico o associazione anticipata.

Riepilogo: override e sovraccarico in C #

Override e Overload sono due tipi di polimorfismo. La differenza tra l'override e l'override in C # è che l'associazione della chiamata del metodo sottoposto a override alla relativa definizione avviene in fase di esecuzione mentre l'associazione della chiamata del metodo sovraccarico alla relativa definizione avviene in fase di compilazione.

Raccomandato: