|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5161
|
Ereditarietà e polimorfismo... ho capito giusto?
Ciao.
Ho seguito un corso aziendale in cui si è parlato velocamente anche di ereditarietà e polimorfismo. Cercando un po' in google ho "costruito" questo esempio per capire le differenze tra i due: - Definisco una classe figura con delle proprietà e dei metodi. - Tramite l'ereditarietà posso creare un oggetto cerchio ed un oggetto quadrato di tipo figura che ne ereditano i metodi e proprietà. - Tramite polimorfismo posso calcolare l'area delle due classi correttamente in quanto oggetti appartenenti alla stessa classe reagiscono diversamente allo stesso messaggio (usando metodi differenti). Dite che può stare? Ho capito giusto? Ultima modifica di Abadir_82 : 26-09-2009 alle 18:19. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
L'esempio calza sia l'ereditarietà sia per il polimorfismo ma per quest'ultimo forse non nel modo che ti aspetti.
La premessa è che in tanto qualcosa è polimorfico in quanto può essere usato in un contesto in cui è richiesto qualcos'altro. E' questo che lo rende poli-morfico. La relazione che c'è tra ereditarietà e polimorfismo sta in ciò che l'ereditarietà è un tipo di polimorfismo, detto polimorfismo inclusivo. Infatti, se hai un tipo figura ed un tipo cerchio che eredita da figura allora cerchio potrà essere usato ovunque sia richiesta una figura. Cerchio è poli-morfico. Il fatto che l'invocazione di un metodo dichiarato da figura comporti l'esecuzione del metodo definito in cerchio, quando cerchio sia usato in luogo di figura, è un tipo di polimorfismo detto per sovraccarico. Qui ciò che è polimorfico è il nome della funzione (ereditata e ridefinita): figura.calcolaArea calcolaArea è il nome della funzione ma questo nome ha tante forme - ancora poli-morfico - quanti sono i diversi tipi di figura che posso avere (cerchio, quadrato, ellisse e via dicendo). Quale sia la forma concretamente usata dipende dal contesto: se figura è un cerchio allora sarà il calcolaArea del cerchio, se è un rettangolo sarà il calcolaArea del rettangolo eccetera. Questo tipo di polimorfismo si ottiene con il cosidetto collegamento dinamico.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5161
|
Mille grazie, ora è un po' più chiaro
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:35.


















