No sucede nada raro en esa línea. Un = no clona objetos, sólo hace que la variable "apunte" a la misma zona de memoria (al mismo objeto).
Al hacer la asignación tampoco se pierde información. Sólo no puedes acceder a ella desde una variable de tipo Profesor, pero siempre puedes recuperar la información con un "cast" así
Código Java:
Ver originalProfesor profesor73 = interino1;
// No puedes
profesor73.metodoDeProfesorInterino();
// pero si puedes
((ProfesorInterino)profesor73).metodoDeProfesorInterino();
// o incluso volver a recuperar el objeto entero
ProfesorInterino pp = (ProfesorInterino)profesor73;
Se bueno.