"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 |
---|---|
|
Questo è permesso. I due metodi hanno nomi univoci. |
|
E anche questo è permesso. I due metodi hanno nomi univoci (firme). |
|
I nomi dei metodi sono ancora univoci qui. |
|
Ma questo non è permesso. I metodi non sono univoci, anche se vengono passati tipi diversi. |
|
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.