Caio.. in pratica dichiarando Studente s = new Persona("Tom"); non tratterai più con un oggetto di tipo studente, ma di tipo persona... per la VM a runtime s sarà una persona... di conseguenza la variabile "matricola" che appartiene a studente non sarà più utilizzabile perchè....., come dire , l'oggetto studente è come se non fosse stato proprio creato ( non è proprio così però... per rendere l'idea ). Al contrario non si può fare Persona p = new Studente("Roger"); in quanto come ti ha già detto Luc@s non tutte le persone sono degli studenti.
Ciao