  |
Una classe estende un'altra |
class PesceRosso
extends Pesce {
int tonalita;
void mangia(){ ... }
}
Un'altra cosa importante che è possibile fare è quella di
ereditare, ovvero creare una classe che ha stessi campi e metodi di
un'altra e in più ne aggiunge nuovi.
  |
Aggiunge campi |
Vediamo meglio che cosa vuol dire questo. Ricordo innanzitutto che una classe esistente
è solamente una specie di modello di ciò che si vuole ottenere. Quando uso l'ereditarietà,
creo una nuova forma, un nuovo modello di quello che voglio ottenere. Questo modello
ha tutti i campi che prima esistevano, è in più ne aggiunge dei nuovi. Avremo così uno nuovo modello
con una maggiore capacità di contenere informazioni. Per riferirsi a quello che c'è nell'esempio,
diciamo che il pesce rosso ha in più la tonalità.
  |
Aggiunge metodi |
Ma questo non basta: in particolare l'ereditarietà ci consente di aggiungere
nuovi comportamenti. Nell'esempio, il pesce rosso ha anche la capacità di
mangiare che il pesce base non aveva. Questa caratteristica viene evidenziata
dal fatto che la nuova classe ha dei metodi in più.
  |
Eventualmente "ridefinisce" |
Un aspetto fondamentale della programmazione oggetti è il polimorfismo. Lo
vedremo della prossima slide, per adesso notiamo che possiamo inserire nella
classe dei metodi che hanno lo stesso nome (e gli stessi parametri) di metodi
già esistenti nella classe base. Il fatto che siano gli stessi di quelli
esistenti causa il comportamento di ridefinizione, ovvero di sostituzione del
vecchio comportamento con uno nuovo.
|