Skip to main content

Cos'è il sovraccarico del metodo?

Il sovraccarico del metodo è una caratteristica nella 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 a come viene chiamato.I metodi sono anche noti come funzioni in alcuni linguaggi di programmazione, quindi il sovraccarico del metodo viene talvolta definito sovraccarico di funzioni.

Un semplice esempio di sovraccarico di metodi sarebbe un metodo che calcola l'area di un quadrato.Potrebbe essere definito come getrea (Square S).Questo metodo potrebbe essere sovraccarico per calcolare inoltre l'area del cerchio aggiungendo il metodo getrea (cerchio C).

Il requisito principale per il sovraccarico del metodo è che i metodi condividono lo stesso nome.Le loro firme del metodo mdash;il nome del metodo, il numero di parametri e i tipi di dati dei parametri mdash;dovrebbe altrimenti essere unico.In questo modo, il compilatore può determinare quale metodo eseguire. I costruttori, i metodi utilizzati per istanziare gli oggetti, sono spesso sovraccarichi.Questo viene fatto per inizializzare un oggetto con valori non default.Ad esempio, un oggetto dipendente con due campi (nome e data di nascita o DOB) potrebbe avere i seguenti costruttori sovraccarichi: dipendente (), dipendente (nome) e dipendente (nome, DoB).Il primo costruttore crea un oggetto dipendente con nome vuoto e campi DOB.Il secondo imposta il campo Nome, ma lascia vuoto il campo DOB e il terzo definisce sia il nome che i campi DOB.

Il sovraccarico del metodo viene spesso fatto per far apparire più di un metodo logicamente come un singolo metodo.Nell'esempio getArea (), mentre ci sono due metodi fisicamente, il chiamante viene presentato con un singolo metodo GetArea () logico.In questo modo, getArea () può essere ampliato per lavorare su altre forme e mdash;triangoli, trapezio e così via mdash;pur presentandosi logicamente come un singolo metodo. I metodi sono anche sovraccarichi per preservare la compatibilità all'indietro.Un metodo che esegue un calcolo complesso potrebbe essere dato 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 mdash;il vecchio modo o il nuovo modo.

Per evitare di dover trovare tutti i casi in cui il metodo viene chiamato e aggiungere il nuovo parametro, il metodo può essere sovraccarico.Il nuovo metodo avrà la vecchia firma e sarà chiamato dal codice esistente.Non conterrà alcuna logica stessa e chiamerà semplicemente il metodo modificato e passerà in un valore 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 modo 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 del metodo prevalente.Il prevalente del metodo è dove 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.