Ma_fack
Ominide
1 min. di lettura
Vota 5 / 5

Concetti Chiave

  • L'overloading consente di avere più metodi con lo stesso nome, differenziati dai parametri, utile per richiamare in modo specifico metodi simili.
  • È possibile applicare l'overloading anche ai costruttori, trattandoli come metodi con parametri diversi.
  • In Java, la compatibilità tra classi è determinata dalle relazioni di sottoclasse, con concetti di compatibilità stretta e non stretta.
  • Compile-Time e Run-Time sono concetti chiave nell'ereditarietà, distinguendo tra il tipo dichiarato nel codice e il tipo durante l'esecuzione.
  • Il casting di oggetti permette di cambiare il tipo di un oggetto, importante per accedere a metodi specifici di una sottoclasse.

Overloading

L’overloading è quel processo che permette di avere più metodi con lo stesso nome ma differenziati tra loro in base ai parametri tra (). E’ per questo motivo che è possibile avere il metodo .saldo() e il metodo .saldo(int x) e quando li richiamerò dovrò prestare attenzione ad utilizzare uno piuttosto che l’altro. L’overloading può avvenire anche per i costruttori in quanto metodi.

Compatibilità stretta e non / Compile-Time vs Run-Time
Dati due oggetti A e B, con B sottoclasse di A, si dice che A è Compatibile con B e B è Strettamente Compatibile con A.

Un altro concetto importante nell’ereditarietà in Java è il significato di Run-Time e Compile-Time. Il tipo a Compile-Time di una espressione, è il tipo dell’espressione come dichiarato formalmente nel codice sorgente mentre il tipo a Run-Time è il tipo dell’espressione determinato durante l’esecuzione dell’applicazione. Questi due diversi tipi sono riscontrabili nel seguente codice:

ES. Veicolo v = new Macchina ();
Veicolo a compile-time e Macchina a run-time

Cast di oggetti
Riguardo il Cast di oggetti nell’ereditarietà si procede come solito infatti basta semplicemente anteporre il nuovo tipo. Ossia:

ES. Macchina fiat = new Macchina ();
Veicolo v = fiat;
fiat.segnala(); // segnala è un metodo di Macchina non applicabile ad uno Veicolo
((Macchina)v).segnala();

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community