Hola MrClassic!
En tu código veo una declaración e inicializacion de variables correctas, métodos setter correctos, métodos getters correctos, a excepción del método getEspecialidad() donde has incluido una tarea que debería realizar un método tipo procedimiento, ( System.out.println(especialidad); ) un método get (tipo funcion) solo debe de limitarse a devolver un valor u objeto, y no a realizar ninguna otra tarea.
Algo que también estuve observando en tu código es el nombre de la clase, veo que incluyes números, (33) esto no es que este mal, pero normalmente a los nombres de clases no se les incluye un numero (amenos de que quien programa encuentre algún motivo lógico) es mas claro si simplemente se llamara Medico y ya si creas algunos objetos de esta clase, podrías nombrarlos medico1, medico2,...medico33 ext, no es que este mal tu practica, solo es un consejo personal.
En el método multiploEdad () usas la variable tipo int restEdad; Porque no has creado los métodos set y get para esta variable si es una variable igual que las demás?? Mas adelante en la entrega CU0038B aprenderás a declarar variables locales a un método, cuyo uso solo es de iteres solo para ese método (en este caso multiploEdad ())
En resumen, tu ejercicio cumple con lo requerido.
Saludos!