No veo necesario tener estos constructores:
public Persona() {
this(null, 0);
}
public Persona
(String nombre
) { this(nombre, 0);
}
ya que no veo que sea algo util y puede generar errores en el futuro tener Personas sin nombre y/o edad. Lo mismo con la clase Alumno.