|
Indice | Temas Recientes | Quién Está en LÃnea | Lista de Usuarios | Mi Perfil | Búsqueda | Ayuda |
![]() |
mvnForum » Listar todos los foros » Foro: Curso PLJ » Tema: Duda Sesion3 ejer 3!! |
Total de mensajes en este tema: 4 |
[Eliminar este Tema]
[Mover este Tema] [AÅadir a Mis Favoritos] [AÅadir un aviso a este tema] [Publicar nuevo tema] |
Autor |
|
![]() Novato
|
¿Cómo se deberÃan modificar las clases para que el método getArea() no fuera abstracto, sino que tuviera la implementación definida en la clase Figura (y funcione correctamente, claro). Sobre esta cuestion ,¿ basta con contestarla en el respuestas.txt o hay que realizar la modificacion en los archivos? |
||
|
![]() Extranjero
|
Realmente no sé si hay que responderlo en el fichero de respuestas.txt o sà hay que implementarlo. Sà te puedo decir que yo lo he implementado ( además de responder en el fichero ) y ha surgido algo curioso y me gustarÃa saber si alguien me puede decir si lo que hice es "lÃcito". Definà en la clase Figura el método getArea a partir de un array con los parámetros, y en cada figura en getArea inicializo dicho array con los parámetros y llamo a la clase padre para que los calcule. Ahora, en el fichero FiguraTest.java en determinado momento, se despila una figura y se guarda en una variable auxiliar, luego sobre ésta variable se llama al método getArea. En ése momento me dá un error de compilación, porque dicha figura es de tipo Figura y en figura no hay método getArea(), sino un método getArea( double[] ). Se me ocurrió definir un método extra en Figura llamado getArea() sin parámetros, pero que dentro ejecuta la siguiente instrucción: this.getArea(); y ahora funciona bien. Realmente no entiendo bien porqué funciona ![]() ¿ Alguien podrÃa aclarármelo ? Saludos... |
||
|
![]() Miembro
|
Hola, os hecho una mano: la respuesta hay que implementarla (y probar que funciona). La solución que yo tengo es cambiar el nombre de los métodos especÃficos y llamarlos calculaArea(). Y hacer que el método getArea() de la clase Figura llame al método calculaArea() (this.calculaArea()) especÃfico de la subclase. Al final, lo que ha descubierto PinkFreud es que es posible hacer lo mismo sin cambiar los nombres de los métodos. De hecho, cuando en la clase Figura se llama a this.getArea() el objeto "this" es un objeto especÃfico (un Circulo o un Rectangulo) que se ha cogido del Stack. Por eso, lo que se ejecuta es el método propio del objeto. Espero no haber liado más!! Domingo. |
||
|
![]() Miembro
|
Mirad también este tema, que completa la respuesta. Domingo. |
||
|
[Versión imprimible] [Publicar nuevo tema] |