  |
Ridefinizione di metodi |
La capacità di ridefinire metodi, è alla base della polimorfismo. Vediamo nel
seguente esempio come stiamo sostituendo al metodo nuota() esistente uno
metodo, che ha lo stesso nome di quello della classe base.
class PesceRosso
extends Pesce {
void nuota() { ... }
}
In tal caso avviene un meccanismo speciale detto polimorfismo. Prima di entrare
dettagli, cerchiamo di capire concettualmente che vuol dire che è un oggetto e
polimorfo. Non bisogna andare molto lontano con gli esempi: considerando una
automobile, questa ha dei comportamenti diversi a seconda del modello. In
particolare per accenderla (nel nostro linguaggio invocando il metodo accendi()
della classe Auto), il comportamento effettivo del motore per fare questa
operazione è diverso a seconda che si tratta di una Ferrari monoposto di formula
uno, o una utilitaria per andare alla spesa. In ogni caso, entrambe si
accendono, si mettono in moto. In pratica ad una richiesta che è abbastanza
"standard" (accendere la macchina), la specifica automobile sa in se come
comportarsi. Polimorfismo significa che gli oggetti cambiano il loro comportamento
pur mantenendo la stessa forma.
|