La programación JAVA utiliza el principio del polimorfismo para calcular el número de lados y áreas de diferentes tipos de formas.
Parece que la w y la h del cuadrado son iguales, ¿verdad?
El siguiente código es sólo de referencia
public?class?TestCircle?{
public?static?void?main(String[]?args)? {
¿Forma?forma1?=?nuevo?Círculo(2);
Forma?forma2?=?nuevo?Triángulo(10,?20);
Forma ?shape3?=?new?Square(20);
System.out.println("Número de lados del círculo (r=2): "?+?shape1.getBorders());
p>System.out.println("El área del círculo (r=2): "?+?shape1.getArea());
System.out. println("Triangle(w) =10, h=20): "?+?shape2.getBorders());
System.out.println("El área del triángulo (w= 10, h=20): " ?+?shape2.getArea());
System.out.println("Número de lados del cuadrado (h=20): "?+?shape3.getBorders ());
System.out.println("El área del cuadrado (h=20): "?+?shape3.getArea());
}
}
interfaz?Forma?{
int?getBorders();
double?getArea();
}
¿clase? ¿Círculo? ¿implementos? ¿Forma?{
int?r;
¿público?Círculo(int?r)?{ p>
super();
this.r?=?r;
}
@Override
público? int?getBorders()?{
return?1;
}
@Override
public?double?getArea()? {
retorno?Math.PI ?*?Math.pow(r,?2);
}
}
clase ?Triángulo?implementa?Forma?{
int?w;
int?h;
public?Triangle(int?w,?int?h) ?{
super();
esto.w?=?w;
esto.h?=?h;
}
@Override
public?int?getBorders()?{
return?3;
}
@Override
público?doble?getArea()?{
retorno?w?*?h?/?2;
}
}
clase ?Cuadrado?implementos?Forma?{
int?w;
público?S
quare(int?w)?{
super();
this.w?=?w;
}
@ Anular
public?int?getBorders()?{
return?4;
}
@Override
public?double?getArea()?{
return?Math.pow(w,?2);
}
}