Sei sulla pagina 1di 1

Ereditariet�

Quando si crea una classe, � possibile far si che essa erediti, metodi e attributi
di una classe gi� esistente.
La classe gi� esistente � chiamata superclasse, mentre la nuova classe che eredita
� chiamata sottoclasse. La sottoclasse pu� a sua volta, diventare superclasse per
nuove sottoclassi. Ogni classe in Java deriva dalla classe Object e ogni classe pu�
essere sottoclasse di una sola superclasse alla volta, ma pu� essere superclassi di
pi� sottoclassi.
Una sottoclasse pu� aggiungere i propri metodi e attributi, diventando quindi pi�
precisa e descrivendo un gruppo pi� specifico di oggetti rispetto la sua
superclasse.
La sottoclasse si comporta come la sua superclasse ed ha la possibilit� di
modificare questi comportamenti rendendoli pi� adatti al proprio scopo.
E� buon uso dell� ingegneria del software trovare quelle variabili e metodi in
comune tra classi, inserirli in una superclasse e sviluppare sottoclassi con
capacit� che vanno oltre quelle della propria superclasse. Qualsiasi modifica a
questi elementi comuni fatta nella superclasse verr� ereditata dalle sottoclassi,
evitando di dover modificare ogni sottoclasse.
Attraverso l�ereditariet�, si risparmia tempo, basando le nuove classi, su classi
di qualit� e prive di bug gi� esistenti e testate, questo fa s� che il sistema
venga implementato e mantenuto in maniera pi� efficiente.
Il costruttore di una sottoclasse, chiama in maniera implicita o esplicita il
costruttore della propria superclasse per permettere alle variabili della
superclasse di essere inizializzate corettamente. Chiamiamo il costruttore della
nostra superclasse in maniera esplicita attraverso la parola chiave super, seguita
dagli argomenti del costruttore della superclasse.
Quando una sottoclasse fa l� override di un metodo della superclasse spesso chiama
la versione della superclasse per svolgere una parte della sua funzione, utilizza
super per richiamare la versione della superclasse.
Inizializzare un oggetto sottoclasse da il via a una catena di chiamate di
costruttori, nella quale il costruttore della sottoclasse inizializzata prima di
svolgere il proprio compito, implicitamente o esplicitamente chiama il costruttore
della sua superclasse e cosi via fino alla chiamata al costruttore della classe
Object superclasse di ogni classe. A questo punto la sottoclasse esegue il proprio
costruttore.
Attraverso la parola @override si indica il metodo della propria superclasse da
riscrivere. Quando il compilatore incontra un metodo dichiarato con la parola
@override confronta la firma del metodo dichiarato con quella della sua
superclasse, e se non uguali ritorna un errore.