Originariamente inviato da Angelo1974
Caio.. in pratica dichiarando Studente s = new Persona("Tom"); non tratterai più con un oggetto di tipo studente, ma di tipo persona... . Al contrario non si può fare Persona p = new Studente("Roger"); Ciao
non è proprio corretto...

se scrivi Persona p = new Studente (...) non c'è nessun problema
se invece scrivi Studente p = new Persona (...) non te lo compilerà mai...

Persona p = new Studente (..) è una riga legalissima in java...è proprio sulla dichiarazione di variabili padre per poi richiamare i costruttori delle classi figlie che si implementa il polimorfismo...