Cita: Decimos así que un MIDlet es una aplicación Java
realizada con el perfil MIDP sobre la configuración CLDC.
Tu heredas de MIDlet ya que es el punto de aprtida de la aplicacion, es como el nucleo de programacion de ambos perfiles aplicado a nuestra plataforma JME.
Respecto a CommandListener es una interfaz que te permite implementar metodos tipo command(como pulsar botones, salir de la aplicacion, etc), obvio que es necesaria caso contrario como controlar nuestra aplicacion?
Te recomiendo que leas la funcionalidad de cada uno de ellos como tales y que ahi llegues a mas conclusiones
Espero haberte ayudado