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;