Upcasting
Consiste nel convertire (casting) un sottotipo a un supertipo. Può essere implicito.
Esempio:
Considerando classeB che estende classeA
classeB oggettoB = new classeB();
classeA oggettoA = oggettoB;
N.B.: L’interfaccia pubblica si restringe durante l’upcasting, perché ora l’istanza della superclasse non può più accedere ai metodi pubblici della sottoclasse.
Downcasting
Consiste nel convertire un supertipo a un sottotipo. È PER FORZA esplicito.
Esempio:
classeA oggettoA = new classeA();
classeB oggettoB = (classeB) oggettoA;