Muchas gracias a ambos, estos son los tipos de consejo que busco. Ya se me había pasado por la mente que quizás con un sólo objeto Sacnner se debería poder funcionar, pero cuando hago alguno de los ejerciciós, y como me lío tanto con los otros aspectos, prefiero ir a lo seguro y eso hace mis códigos más feos. Gracias también por aclararme lo del main, que me traía loco, no sé en que fase de escribir el código me fallo lo del listaT.listar() y usé ListaCantantesFamosos.listar() (hubo momentos que todos los métodos estaban en la case Test, luego sólo algunos y así...) y ya no supe darme cuenta. Igual con el null y el == true, probé tantas cosas que al final quedó así y no me atreví a tocarlo.
También agredecerte ESOJ tu código, algo así se me pasó por la mente en algún momento pero no supe desarrollarlo, lo de "lista.add(new CantanteFamoso (cantante,disco))" es justo de la siguiente lección y yo soy cartesiano (quiero decir "cuadriculao"

)... no continúo sin haber acabado el ejercicio de la última lección. Con el uso del
this todavía me falla algún concepto y cuando intento usarlo a veces me da errores, viendo vuestros ejemplos se me hace más claro. El problema siempre es el mismo en el fondo...EL **** TIEMPO, que siempre me falta

. Está claro que no basta con hacer los ejercios y que hay que documentarse bien y estudiar las cosas con detalle para tener una buena base, pacienza y un saludo a todos.