
Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Overloading, overriding, java, programmazione
Tipologia: Dispense
1 / 1
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

● 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