Adesso credo di aver capito!

Posso chiederti altre due cose?

1)
codice:
Classe2 c2 = new Classe2();

c2.metodo(); // a tempo di compilazione so gia che dovrò usare il metodo di c2

((Classe1) c2).metodo();
 // anche qua la scelta del metodo da lanciare sarà fatta a tempo di compilazione, no?
2)
((Classe1) c2).metodo();
si dovrebbe chiamare DownCast, giusto?
Cos'è un UpperCast invece, e in cosa differisce dal precedente?


Grazie 1000 per il tuo supporto, mi stai dando una grossa mano