I vantaggi e gli svantaggi del metodo di sovraccarico in Java

I metodi sovraccaricati sono metodi nella stessa classe che condividono lo stesso nome ma accettano tipi di variabili diversi come argomenti. Ad esempio, una classe può contenere due diversi metodi "add": uno che accetta due valori double, "add (double a, double b)" e uno che accetta due valori valori interi, "aggiungi (int a, int b)." Il computer decide automaticamente quale metodo chiamare in fase di esecuzione in base ai tipi di variabili passati al metodo.

Flessibilità

I metodi sovraccaricati offrono ai programmatori la flessibilità di chiamare un metodo simile per diversi tipi di dati. Se stai lavorando su un programma di matematica, ad esempio, potresti usare l'overloading per creare diverse classi "moltiplicate", ognuno dei quali moltiplica un numero diverso di tipo di argomento: il più semplice "moltiplica (int a, int b)" moltiplica due interi; il metodo più complicato "moltiplica (doppio a, int b, int c)" moltiplica un doppio per due interi - potresti quindi chiama "moltiplica" su qualsiasi combinazione di variabili per cui hai creato un metodo di overload e ricevi il risultato corretto.

Video del giorno

costruttori

L'overload viene utilizzato anche sui costruttori per creare nuovi oggetti date diverse quantità di dati. Ad esempio, puoi utilizzare l'overloading per creare tre diversi costruttori per un oggetto "Casa" con numero civico, nome della via e variabili di colore. Il costruttore più semplice "House()" non accetta argomenti e crea una casa con variabili predefinite o vuote. Un costruttore più complesso, "House (int houseNumber, String streetName)," crea una casa con il numero civico e il nome della via specificati, ma con un colore predefinito o vuoto. Il costruttore più complesso, "House (int houseNumber, String streetName, String color)", crea una casa con tutte le informazioni specificate, senza lasciare nulla come predefinito. Puoi quindi creare un oggetto casa in base alle informazioni attualmente disponibili, con le informazioni non disponibili lasciate vuote o per impostazione predefinita.

Riferimenti ambigui

I metodi sovraccaricati devono utilizzare numeri o tipi di argomenti diversi per evitare ambiguità. Se crei due metodi nella stessa classe che hanno lo stesso nome e accetti due interi come argomenti, il Il compilatore Java non sarà in grado di distinguere tra i due, anche se le variabili di input hanno nomi diversi. Ad esempio, il metodo "add (int a, int b)" non può esistere nella stessa classe del metodo "add (int c, int d)."

Tipi di reso

È necessario definire un tipo restituito per ogni metodo sottoposto a overload. I metodi possono avere diversi tipi di restituzione, ad esempio "add (int a, int b)" può restituire un numero intero, mentre "add (double a, double b)" restituisce un double. Tuttavia, Java non è in grado di distinguere tra due metodi diversi in base al tipo restituito. Pertanto, "int multiply (double a, double b)" non può esistere nella stessa classe di "double multiply (double a, double b)".