Quote Originariamente inviata da newutente Visualizza il messaggio
Sto cercando di capire il polimorfismo per dati ma ho qualche dubbio.

Un esempio del polimorfismo potrei averlo in questa riga di codice:
codice:
Punto ogg = new PuntoTridimensionale();
In questo caso il reference ogg di tipo Punto conterrà un indirizzo e un intervallo di puntamento. Questo intervallo di puntamento non riguarderà la classe PuntoTridimensionale ma la classe Punto e infatti l'oggetto non potrà accedere ai metodi dichiarati nella classe PuntoTridimensionale.
Io allora vi chiedo:
1) che senso ha una istruzione di quel tipo? Scritta così non è equivalente a:


2) per risolvere il problema del puntamento una soluzione potrebbe essere questa?
codice:
Punto ogg = new Punto();
PuntoTridimensionale ogg2 = (PuntoTridimensionale) ogg;
ad entrambe le domande la risposta e` una: dipende da cosa ci devi fare. Se devi manipolare punti tridimensionali e solo quelli e` necessario specificare il sottotipo. Se invece maneggi oggetti che estendono Punto ma non sono necessariamente istanze di PuntoTridimensionale allora e` corretta la prima.