Il metodo addXXXListener deve essere implementato non da chi vuole ricevere gli eventi, ma da chi li produce, ovvero nel tuo esempio dalla classe Professore. Vicevers Studente deve implementare l'interfacce ProfessoreListener che deve avere uno o più metodi che saranno richiamati da professore sugli ascoltatori registrati quando vuole produrre l'evento