- Per invocare un metodo il compilatore deve sapere esattamente quale oggetto
sta maneggiando
- Proviamo a fare un altro esempio:
- animale domestico è una classe generica,
della quale non ci interessa costruire individui (istanze)
- Gli individui potranno essere, ad esempio, cani
- Potremmo a questo punto derivare dai cani la classe dei cani da riporto
- Risulta evidente che un cane può essere un cane da riporto, oppure un
cane normale
- Possiamo quindi avere istanze sia della classe che della superclasse
- In questa circostanza ci risulterà impossibile eseguire un'operazione su tutti i cani
(da riporto e non), nel caso i cani da riporto ridefiniscano il metodo che dobbiamo usare
- Se faremo un ciclo su tutti i cani il compilatore genererà delle chiamate
al metodo di cane, comunque, anche per i cani da riporto, visto che utilizzeremo un puntatore a cane
per accedere ai singoli cani
|