Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Java - Overloading, overriding, Dispense di Programmazione Java

Overloading, overriding, java, programmazione

Tipologia: Dispense

2022/2023

In vendita dal 18/09/2023

carla-boscolo
carla-boscolo 🇮🇹

4.5

(13)

520 documenti

1 / 1

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Overloading, overriding
Quando vi sono più costruttori: tutti hanno lo stesso nome e sarà il compilatore a
selezionare quale utilizzare in funzione degli argomenti specificati al momento
dell’invocazione. Questa tecnica è denominata overloading e consente di
definire più metodi (non esclusivamente i costruttori) nello ambito della stessa
Classe aventi lo stesso nome, a patto che differiscano nella firma cioè nel
numero e nel tipo dei parametri specificati. La sola modifica del valore di ritorno
non è sufficiente a realizzare un overloading e non è accettata dal compilatore.
La tecnica di ridefinizione in una Classe derivata di metodi già presenti nella
superclasse è denominata overriding : un metodo sovrascritto nasconde, negli
oggetti istanza della Classe derivata, la definizione data nella superclasse
sostituendola con quella data nella Classe derivata. (La parola chiave final del
linguaggio Java applicata ad un metodo di una Classe ne impedisce la
ridefinizione in una Classe derivata, cioè non si può fare l’overriding di quel
metodo). Un metodo ridefinito in una Classe derivata nasconde un metodo
omonimo della superclasse solo se la sua firma è esattamente la stessa del
metodo originale.
L’overriding fa in modo che un metodo sovrascritto nasconda nella Classe derivata la
definizione data nella superclasse per un metodo avente la stessa firma, tuttavia la
forma originale risulta accessibile nel codice dei metodi della Classe derivata utilizzando
la parola chiave super mediante la quale risultano invocabili anche i costruttori della
superclasse. La possibilità di accedere ai costruttori e ai metodi della Classe originale
utilizzando la parola chiave super garantisce il rispetto del principio di incapsulamento
rispetto alle Classi derivate: eventuali modifiche del codice dei metodi della superclasse
che non ne modifichino la firma non si rifletteranno sul codice dei metodi della
sottoclasse.
Dato che la parola chiave super nel linguaggio Java riferisce la superclasse e
che i costruttori hanno per definizione il nome della Classe in cui sono definiti, il
costruttore della superclasse viene normalmente invocato nel costruttore della
sottoclasse mediante la seguente sintassi : super( ….. ); Questa invocazione, se
presente, deve essere la prima istruzione del costruttore di una Classe derivata.
Nel metodo ridefinito toString l’espressione super.toString() riferisce il risultato
prodotto dall’omonimo metodo della Classe

Anteprima parziale del testo

Scarica Java - Overloading, overriding e più Dispense in PDF di Programmazione Java solo su Docsity!

Overloading, overriding

● Quando vi sono più costruttori: tutti hanno lo stesso nome e sarà il compilatore a selezionare quale utilizzare in funzione degli argomenti specificati al momento dell’invocazione. Questa tecnica è denominata overloading e consente di definire più metodi (non esclusivamente i costruttori) nello ambito della stessa Classe aventi lo stesso nome , a patto che differiscano nella firma cioè nel numero e nel tipo dei parametri specificati. La sola modifica del valore di ritorno non è sufficiente a realizzare un overloading e non è accettata dal compilatore. ● La tecnica di ridefinizione in una Classe derivata di metodi già presenti nella superclasse è denominata overriding : un metodo sovrascritto nasconde, negli oggetti istanza della Classe derivata, la definizione data nella superclasse sostituendola con quella data nella Classe derivata. (La parola chiave final del linguaggio Java applicata ad un metodo di una Classe ne impedisce la ridefinizione in una Classe derivata, cioè non si può fare l’overriding di quel metodo). Un metodo ridefinito in una Classe derivata nasconde un metodo omonimo della superclasse solo se la sua firma è esattamente la stessa del metodo originale. L’ overriding fa in modo che un metodo sovrascritto nasconda nella Classe derivata la definizione data nella superclasse per un metodo avente la stessa firma, tuttavia la forma originale risulta accessibile nel codice dei metodi della Classe derivata utilizzando la parola chiave super mediante la quale risultano invocabili anche i costruttori della superclasse. La possibilità di accedere ai costruttori e ai metodi della Classe originale utilizzando la parola chiave super garantisce il rispetto del principio di incapsulamento rispetto alle Classi derivate: eventuali modifiche del codice dei metodi della superclasse che non ne modifichino la firma non si rifletteranno sul codice dei metodi della sottoclasse. ● Dato che la parola chiave super nel linguaggio Java riferisce la superclasse e che i costruttori hanno per definizione il nome della Classe in cui sono definiti, il costruttore della superclasse viene normalmente invocato nel costruttore della sottoclasse mediante la seguente sintassi : super( ….. ); Questa invocazione, se presente, deve essere la prima istruzione del costruttore di una Classe derivata. ● Nel metodo ridefinito toString l’espressione super.toString() riferisce il risultato prodotto dall’omonimo metodo della Classe