Hola, en relación a esta propuesta de solución, aunque el código funciona y realiza lo pedido en el enunciado del ejercicio, hay varios aspectos de diseño mejorables. Las observaciones serían:
a) La clase ListaCantantesFamosos tiene un atributo CantanteFamoso datosCantante; cuyo uso es más bien el de una variable auxiliar. Por tanto hubiera sido más lógico incluirla como variable local al constructor o métodos si fuera necesario (que realmente no lo es).
b) La clase ListaCantantesFamosos tiene como atributos GestionarEntrada entrada1; y GestionarEntrada entrada2; que no son lógicos para esta clase. Esta clase representa una lista de cantantes y dentro de sus atributos no parece lógico que estén estos objetos. Estos objetos debían ser gestionados más bien desde la clase con el main.
c) Tampoco es habitual que en métodos como adicionarCantante se muestren mensajes por consola, esto normalmente se gestiona desde otras clases o desde el main.
Puede verse una solución correcta para este ejercicio en
https://aprenderaprogramar.com/foros/index.php?topic=2889.0Saludos