Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Karurosu en 10 de Octubre 2016, 12:56
-
¡Buenas!
Soy un estudiante de programación y bueno, me han pedido un ejercicio en el que debo tener una clase Figura y varias figuras que hereden de ella. La clase Figura es una interfaz y las demás clases heredan de ella. El problema está cuando quiero mostrar las figuras de un arraylist y quiero acceder a un método de una de las figuras hijas dentro de la colección. Al compilar me da un error en cada sitio en el que intento hacer esto. Os dejo la parte del código donde me sale el error:
for(int i=0;i<figuras.size();i++){
if(figuras.get(i) instanceof Cuadrado){
System.out.println("Datos del cuadrado creado: ");
System.out.println("Lado: "+figuras.get(i).getLado());
System.out.println("Area: "+figuras.get(i).area());
}
else if(figuras.get(i) instanceof Rectangulo){
System.out.println("Datos del rectangulo creado: ");
System.out.println("Base: "+figuras.get(i).getBase());
System.out.println("Base: "+figuras.get(i).getAltura());
System.out.println("Area: "+figuras.get(i).area());
}
else if(figuras.get(i) instanceof Circulo){
System.out.println("Datos del circulo creado: ");
System.out.println("Radio: "+figuras.get(i).getRadio());
System.out.println("Area: "+figuras.get(i).area());
}
else{
System.out.println("Datos de la esfera creado: ");
System.out.println("Radio: "+figuras.get(i).getRadio());
System.out.println("Area: "+figuras.get(i).area());
}
System.out.println("----------------------------------------");
}
El error esta en System.out.println("Radio: "+figuras.get(i).getRadio());, y en las líneas donde no pido el area, ya que el area si me lo coge bien. Os dejo también el código de la clase interfaz por si acaso.
public interface Figura{
float pi = 3.1416f;
float area();
}
Las figuras hijas implementan y no extienden, ¿tal vez sea ese el fallo?
Un placer y a espera de alguna respuesta. Gracias =)
-
Para poder probar tu código tenes que pegar todo.
-
Buenas, como te ha comentado DRANX sería necesario que pegues todo el código. También recomendarte que consultes este curso, ahí tienes ejemplos similares al problema que planteas.
Salu2