Veramente è il contrario ed il codice, correttamente, fa il contrario. Assegna una sottoclasse ad un oggetto di tipo superclasse.come mai una superclasse può essere assegnata ad una sottoclasse?
Un riferimento ad una superclasse può ricevere un oggetto di tipo SottoClasse.
Ed è piuttosto ovvio.
Ad un riferimento di tipo Figura posso passare qualunque Figura (un Triangolo, un Quadrato, un Cerchio, ecc)... sono tutte Figure.
ClasseDerivata estende ClasseBase significa che ClasseDerivata è un ClasseBase, ed è ovvio: un Triangolo è una figura, un Cerchio è una Figura.
Questo è un concetto fondamentale per la programmazione Object Oriented (che deriva dalla realtà, per di più).
Tra parentesi, l'assegnamento non fa cambiare proprio nulla: nulla viene trasformato, semplicemente si fa riferimento ad un oggetto sottoclasse, tramite un "riferimento" di tipo "superclasse". Si ha una visibilità minore dei metodi messi a disposizione, ma non c'è nulla di così strano.
Ciao.![]()