Metodo sovraccarico

All lectures for IT purposes
Livello 1 , Lezione 120
Disponibile

"Ciao, Amigo! Ti parlerò dell'overload del metodo ."

"Puoi sovraccaricare anche loro?! Che giornata!"

"Puoi fare molto con loro, ma non ne parleremo adesso."

"È un affare."

"L'overload è un'operazione molto semplice. In realtà, non è nemmeno un'operazione sui metodi, anche se a volte viene indicata con un nome spaventoso: polimorfismo parametrico ."

La cosa che devi ricordare è che ogni metodo in una classe deve avere un nome univoco.

"Si lo so."

"Beh, non è del tutto vero. Voglio dire, non è affatto vero. Un metodo non deve avere un nome univoco. Ciò che deve essere unico è la combinazione del nome di un metodo e dei tipi dei suoi parametri. Questa combinazione è anche nota come firma del metodo."

Codice Commenti
public void print();
public void print2();
Questo è permesso. I due metodi hanno nomi univoci.
public void print();
public void print(int n);
E anche questo è permesso. I due metodi hanno nomi univoci (firme).
public void print(int n, int n2);
public void print(int n);
I nomi dei metodi sono ancora univoci qui.
public int print(int a);
public void print(int n);
Ma questo non è permesso. I metodi non sono univoci, anche se vengono passati tipi diversi.
public int print(int a, long b);
public long print(long b, int a);
Ma questo è permesso. I parametri del metodo sono univoci.

"L'ho già visto da qualche parte."

"Sì. Quando digiti " System.out.println ", IntelliJ IDEA suggerisce un paio di dozzine di versioni di metodi di stampa che utilizzano parametri diversi. Il compilatore identifica semplicemente e quindi chiama il metodo richiesto in base ai tipi di parametri che passi."

"Non è così difficile. Ma non è polimorfismo."

"O più precisamente, non si tratta di ignorare il metodo."

A proposito, voglio sottolineare che i nomi dei parametri sono irrilevanti. Vengono persi durante la compilazione. Una volta che un metodo è stato rispettato, solo il suo nome ei tipi di parametro sono noti.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION