Differenza tra metodo di sovraccarico e sovrascrittura

Sovraccarico del metodo
L'overloading del metodo, noto anche come overload di funzioni o polimorfismo del tempo di compilazione, è un concetto di avere due o più metodi con lo stesso nome ma firma diversa nello stesso ambito. Esistono molti linguaggi di programmazione che supportano questa funzione: Ada, C ++, C #, D e Java.

Esempio di sovraccarico del metodo in C #

1234567891011121314 classe OverloadShapes float Polygon (int raggio, float pi) float circleArea = pi * raggio * raggio; int Poligono (int length, int larghezza) int rectangle = lunghezza * larghezza; int Poligono (lato int) int squareArea = lato * lato;

Come mostrato nell'esempio precedente, il metodo 'Polygon' è sovraccaricato 3 volte con una firma del metodo diversa, cioè il tipo o il numero di parametri sono diversi.

Metodo Overriding
L'override del metodo, noto anche come override della funzione o polimorfismo Run time, è una funzionalità OOP che consente a una classe figlia di fornire la propria implementazione al metodo definito nella classe padre. L'implementazione nella classe figlio sovrascrive la definizione del metodo nella classe base, a condizione che il metodo nella classe figlio abbia lo stesso nome, firma e tipo di ritorno.

Esempio di metodo che esegue l'override in C #

12345678910 classe Source1 public void draw () Console.Writeline ("I am in class Source1"); classe Source2 estende Source1 public void draw () Console.Writeline ("I am in class Source2");

Qui, il metodo draw nella classe Source2 sovrascrive il metodo draw definito nella classe Source1.

Differenza tra metodo Sovraccarico e metodo Ignora

  1. Nel metodo, i metodi di overloading devono avere una firma diversa. Nel metodo, i metodi di sovrascrittura devono avere la stessa firma.
  2. La funzione di sovraccarico è "aggiungere" o "estendere" di più al comportamento del metodo. La funzione di override consiste nel "cambiare" o "ridefinire" completamente il comportamento di un metodo.
  3. Il sovraccarico del metodo viene utilizzato per ottenere il polimorfismo del tempo di compilazione; L'override del metodo viene utilizzato per ottenere il polimorfismo di runtime.
  4. Nel metodo / funzione il compilatore di overload sa quale oggetto assegnato a quale classe al momento della compilazione, ma nel metodo che sovrascrive questa informazione non è noto fino al runtime.
  5. La funzione Overloading si svolge nella stessa classe mentre Override si svolge in una classe derivata da una classe base.
IT