¡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 =)