Raccomandato, 2024

Scelta Del Redattore

Differenza tra metodo Sovraccarico e Override

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 #

classe OverloadShapes {float Polygon (int raggio, float pi) {float circleArea = pi * raggio * raggio; } int Poligono (int length, int larghezza) {int rectangleArea = lunghezza * larghezza; } int Poligono (lato int) {int squareArea = lato * lato; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14classe OverloadShapes {float Polygon (int raggio, float pi) {float circleArea = pi * raggio * raggio; } int Poligono (int length, int larghezza) {int rectangleArea = lunghezza * larghezza; } int Poligono (lato int) {int squareArea = lato * lato; }}

Come mostrato nell'esempio precedente, il metodo 'Polygon' viene sovraccaricato 3 volte con una firma del metodo diversa, ovvero 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 #

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"); }}
1 2 3 4 5 6 7 8 9 10class 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 sovraccarico del metodo e sovrascrittura del metodo

  1. Nel metodo, i metodi di overloading devono avere una firma diversa. Nel metodo, i metodi di sovrascrittura devono avere la stessa firma.
  2. Funzione Il 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.
Top