Estoy intentando hacer una simple herencia donde cree la clase padre Oferta que tiene el metodo getCosto() luego cree una clase hija de esta Viaje() para que herede los metodos de Oferta y no me sale....me pone que viaje no reconoce los metodos estoy seguro que es un error muy tonto el q cometo pero no lo encuentro mando fotos
Segunda foto
Tercer
Hola Josue,
¡Por favor no compartas código de la solución de tu TP en el foro! Si tenés una duda de este estilo tratá de probarlo con algún ejercicio de la guía o algún otro ejemplo para compartirlo.
A simple vista el único problema de sintaxis es simplemente porque no están grabados los cambios de los archivos nuevos (se puede ver un asterisco a la izquierda de cada nombre indicando eso). Al guardarlos ya no debería subrayártelo en rojo.
Además se pueden apreciar muchos problemas conceptuales:
- No se entiende la necesidad de la clase Oferta. ¿Por qué es concreta? ¿Alguien la instancia?
- No se entiende la necesidad de la relación de herencia entre Viaje y Oferta. Un viaje no es una Oferta y no se puede ver que haya código que se esté reutilizando siquiera.
- Estás creando clases sin haber escrito una prueba primero. Se puede apreciar en las imágenes que no creaste ninguna clase de pruebas propia todavía y que te estás mandano a crear clases sin definirles su contrato mediante una prueba unitaria.
Perdón!, no pensé cuando puse las imagines como las borro ?. Lo que hice era solo un ejemplo para probar herencia no se como podría responderte bien sin decir detalles de como lo pensé lo de Oferta, lo de las pruebas unitarias no las hice por que aun estoy intentando entender bien como funcionan ( vi como se hacen en las clase, estoy recordando y viendo mis anotaciones pero aveces me surgen pequeños errores ), tengo varias preguntas intento encontrar las respuestas en Internet pero no siempre es tan rápido encontrarlas, puedo mandar las dudas puntuales de mi implementacion a algún mail de los ayudantes? eso me ayudaría mucho serán preguntas puntuales
Para guiarte con las pruebas unitarias en JUnit quizás te sirva el código de Pokemon para tener como ejemplo. También hice un resumen acerca de las distintas maneras de probar el lanzamiento de excepciones con JUnit.
La idea es que antes de crear una clase tengas bien en claro cuál va a ser su responsabilidad y definirla en una prueba unitaria. De esta forma te asegurás de nunca tener clases que no hagan nada y cuyo encapsulamiento sea violado constantemente.
Para aplicar la relación de herencia tenés que tener presente que se cumpla la regla de "es un" y que además haya código en común que le de sentido a la necesidad de la relación. Si no quizás te convenga usar una interfaz. Asegurate también de que no se viole el principio de sustitución de Liskov.
Si tenés dudas sobre esto podés publicar en el foro con cualquier ejemplo del libro o de la guía de ejercicios. Si es algo muy puntual del modelo de tu TP podés mandarme un mensaje.
Saludos,
Tomás
Genial leeré todo lo que me mandaste, gracias por todas las repuestas!