Polimorfismo (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m spazi dopo la virgola
Riga 7:
 
== Polimorfismo per inclusione ==
Solitamente è legato alle relazioni di eredità tra classi, che garantisce che tali oggetti, pur di tipo differente, abbiano una stessa [[Interfaccia_(informatica)#Interfaccia_nella_programmazione_orientata_agli_oggetti|interfaccia]]: nei linguaggi ad oggetti tipizzati, le istanze di una sottoclasse possono essere utilizzate al posto di istanze della superclasse (''polimorfismo per inclusione'').
 
L'[[overriding]] dei metodi o delle proprietà permette che gli oggetti appartenenti alle sottoclassi di una stessa classe rispondano diversamente agli stessi utilizzi. Ad esempio, supponiamo di avere una gerarchia in cui le classi <tt>Cane</tt> e <tt>Gatto</tt> discendono dalla superclasse <tt>Animale</tt>. Quest'ultima definisce un metodo <tt>cosaMangia()</tt>, le cui specifiche sono: ''Restituisce una stringa che identifica il nome dell'alimento tipico dell'animale.'' I due metodi <tt>cosaMangia()</tt> definiti nelle classi <tt>Cane</tt> e <tt>Gatto</tt> [[overriding|si sostituiscono]] a quello che ereditano da <tt>Animale</tt> e, rispettivamente, restituiscono <tt>"osso"</tt> e <tt>"pesce"</tt>. <br/>