POO-ITBA / 2024_01

Consultas 1C 2024
0 stars 0 forks source link

Repaso segundo parcial - Ejercicio 1 #21

Open fedemagri23 opened 5 months ago

fedemagri23 commented 5 months ago

Buenos días, hice este ejercicio y al correr el programa de prueba me daba error, ya que no se ncontraban los métodos add, contains y size. Viendo la solución noté que se debía a que no hice que SimpleList extienda a List. Mi pregunta es por qué se debe hacer esto si ArrayList ya cuenta con dichos métodos?

Consigna: image

Solución: image

fmeola commented 5 months ago

Hola @fedemagri23 Esto ocurre porque en el programa de prueba la variable simpleList está declarada con el tipo SimpleList. Fijate de cambiar el tipo de SimpleList a por ejemplo ArrayList y ahí va a funcionar. Por más que el objeto sea una instancia de SimpleArrayList y ya tenga todos los métodos de ArrayList, si vos a ese objeto lo guardás en un variable de otro tipo de dato el compilador de Java sólo te va a permitir invocar a los métodos públicos del tipo de dato de la variable. Como las buenas prácticas para el uso de colecciones nos indican que las variables y parámetros sean de tipo interfaz entonces lo correcto es hacer que la interfaz SimpleList extienda de List.

fedemagri23 commented 5 months ago

Clarísimo, gracias por la respuesta.