Differenza tra sovrascrittura e sovraccarico in C

Sommario:

Differenza tra sovrascrittura e sovraccarico in C
Differenza tra sovrascrittura e sovraccarico in C

Video: Differenza tra sovrascrittura e sovraccarico in C

Video: Differenza tra sovrascrittura e sovraccarico in C
Video: Overloading vs Overriding in C# .NET 2024, Luglio
Anonim

Differenza chiave – Sovrascrittura e 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 sua definizione avviene in fase di esecuzione mentre l'associazione della chiamata al metodo sovraccaricato alla sua 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 sovrascrittura e sovraccarico. Questo articolo illustra la differenza tra l'override e l'override del metodo in C.

Cos'è l'override in C?

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

Differenza tra sovrascrittura e sovraccarico in C
Differenza tra sovrascrittura e sovraccarico in C

Figura 01: Programma C con Override

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

In primo luogo, 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 Rectangle. Quindi, verrà eseguito il metodo di visualizzazione della classe Rectangle. Infine, la variabile di riferimento punta all'oggetto Triangle. Quindi, verrà eseguito il metodo di visualizzazione della classe Triangle. Il metodo di visualizzazione della classe base è sovrascritto dai metodi di visualizzazione delle classi derivate.

Il metodo di esecuzione viene deciso in fase di esecuzione. La classe Shape è scritta con la parola chiave "virtuale". Le classi Rectangle e Triangle sono 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.

Cos'è il sovraccarico in C?

Nell'overloading, 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. L'overloading del metodo si verifica nella stessa classe. L'associazione dei metodi sovraccaricati alla definizione avviene in fase di compilazione. Fare riferimento al seguente programma C.

Differenza chiave tra sovrascrittura e sovraccarico in C
Differenza chiave tra sovrascrittura 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 somma (2, 3) invocherà il metodo sum con numeri interi. La somma (5.1, 7.94) invocherà il metodo sum con valori doppi. Entrambi i metodi hanno lo stesso nome e lo stesso numero di parametri. Ma i tipi di parametro 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 sovrascrittura e sovraccarico in C?

Sia l'override che il sovraccarico in C sono tipi di polimorfismo

Qual è la differenza tra sovrascrivere e sovraccaricare in C?

Override vs sovraccarico in C

L'override in C serve a fornire un'implementazione specifica in un metodo di classe derivato per un metodo già esistente nella classe base. L'overload in C significa creare più metodi con lo stesso nome con implementazioni diverse.
Parametri
In C Override, i metodi hanno lo stesso nome, gli stessi tipi di parametri e lo stesso numero di parametri. In C Overloading, i metodi hanno lo stesso nome ma un diverso numero di parametri o un diverso tipo di parametri.
Ricorrenza
In C, l'override avviene all'interno della classe base e della classe derivata. In C, il sovraccarico si verifica all'interno della stessa classe.
Tempo di rilegatura
Il collegamento della chiamata del metodo sovrascritto alla sua definizione avviene in fase di esecuzione. Il collegamento della chiamata al metodo sovraccaricato 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 binding anticipato.

Riepilogo – Sovrascrittura e sovraccarico in C

Overriding e Overloading sono due tipi di polimorfismo. La differenza tra l'override e l'override in C è che l'associazione della chiamata al metodo sottoposta a override alla sua definizione avviene in fase di esecuzione mentre l'associazione della chiamata al metodo sovraccaricato alla sua definizione avviene in fase di compilazione.

Consigliato: