Che cos'è il metodo di sovraccarico?

Il sovraccarico dei metodi è una funzionalità della maggior parte dei linguaggi di programmazione orientati agli oggetti in cui due o più metodi condividono lo stesso nome ma hanno parametri diversi. In particolare, il numero, il tipo di dati e / o l'ordine dei parametri sono diversi. Quando il codice viene compilato, il metodo corretto verrà automaticamente selezionato in base al modo in cui viene chiamato. I metodi sono anche noti come funzioni in alcuni linguaggi di programmazione, quindi il sovraccarico dei metodi viene talvolta definito come sovraccarico delle funzioni.

Un semplice esempio di sovraccarico del metodo sarebbe un metodo che calcola l'area di un quadrato. Potrebbe essere definito come getArea (Square s). Questo metodo potrebbe essere sovraccaricato per calcolare ulteriormente l'area del cerchio aggiungendo il metodo getArea (Cerchio c).

Il requisito principale per il sovraccarico del metodo è che i metodi condividano lo stesso nome. Le loro firme dei metodi - il nome del metodo, il numero di parametri e i tipi di dati dei parametri - dovrebbero altrimenti essere univoci. In questo modo, il compilatore può determinare quale metodo eseguire.

I costruttori, i metodi utilizzati per istanziare oggetti, sono spesso sovraccarichi. Questo viene fatto per inizializzare un oggetto con valori non predefiniti. Ad esempio, un oggetto dipendente con due campi (nome e data di nascita o dob) potrebbe avere i seguenti costruttori sovraccarichi: Employee (), Employee (name) e Employee (name, dob). Il primo costruttore crea un oggetto dipendente con nome vuoto e campi dob. Il secondo imposta il campo del nome, ma lascia vuoto il campo dob e il terzo definisce sia i campi name che dob.

Il sovraccarico del metodo viene spesso eseguito per far apparire logicamente più di un metodo come singolo metodo. Nell'esempio getArea (), mentre esistono due metodi fisici, al chiamante viene presentato un unico metodo logico getArea (). In questo modo, getArea () può essere espanso per lavorare su altre forme - triangoli, trapezi e così via - pur presentandosi logicamente come un singolo metodo.

I metodi sono inoltre sovraccaricati per preservare la compatibilità con le versioni precedenti. Un metodo che esegue un calcolo complesso potrebbe ricevere un nuovo requisito per eseguire facoltativamente lo stesso calcolo con una leggera modifica. Un nuovo parametro viene aggiunto al metodo che determinerà come eseguire il calcolo: il vecchio o il nuovo.

Per evitare di dover trovare tutti i casi in cui viene chiamato il metodo e aggiungere il nuovo parametro, è possibile sovraccaricare il metodo. Il nuovo metodo avrà la vecchia firma e verrà chiamato dal codice esistente. Non conterrà alcuna logica in sé e chiamerà semplicemente il metodo modificato e passerà in modo predefinito di "vecchio modo" per il nuovo parametro. Il nuovo codice chiamerà il metodo modificato e passerà il nuovo parametro con il valore appropriato, vecchio o nuovo.

Il sovraccarico del metodo è un tipo di polimorfismo, in cui lo stesso metodo logico può essere, in pratica, utilizzato in più modi. Il sovraccarico del metodo non è lo stesso della sostituzione del metodo. La sostituzione del metodo è quella in cui la definizione di un metodo in una classe genitore viene modificata da una classe figlio. In questo caso, entrambi i metodi avranno la stessa firma.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?