Porque a chamada do método q.getAreaQuadrado(); não está retornando a àrea do quadrado ?
É uma hierarquia de quatro níveis, aqui só vou mostrar as classes necessárias.
A saida do programa é:
[color=green]no método Quadrado.getAreaQuadrado
no método LadosIguais.getArea
Depois de chamar Quadrado.getAreaQuadrado[/color]
public class Teste {
public static void main(String[] args) {
Quadrado q = new Quadrado (2,2,2,2);
q.getAreaQuadrado();
System.out.println("Depois de chamar Quadrado.getAreaQuadrado");
}
}
[code]public class Quadrado extends LadosIguais {
public Quadrado (float l1, float l2, float l3, float l4){
super(l1, l2, l3, l4);
super.setArea();
}
public String getAreaQuadrado(){
System.out.println("no método Quadrado.getAreaQuadrado");
return String.format("\nA area do quadrado é: %.2f", super.getArea());
}
}
[/code]
[code]
public class LadosIguais extends Quadrilatero{
private float area;
public LadosIguais (float l1, float l2, float l3, float l4){
super(l1, l2, l3, l4);
}
public void setArea(){
//cacula no caso de ser um retangulo
if (super.getLados2(0) == super.getLados2(1))
;
else
area = super.getLados2(0) * super.getLados2(1);
//calcula no caso de ser um quadrado
if (super.getLados2(0)==super.getLados2(1) && super.getLados2(1) == super.getLados2(2))
area = super.getLados2(0)*2;
}
public float getArea(){
System.out.println("no método LadosIguais.getArea");
return area;
}
}[/code]
[code]public class Quadrilatero {
private float lado1, lado2, lado3, lado4;
private float lados[] = new float[4];
public Quadrilatero (float l1, float l2, float l3, float l4){
lado1 = l1;
lado2 = l2;
lado3 = l3;
lado4 = l4;
lados[0] = lado1;
lados[1] = lado2;
lados[2] = lado3;
lados[3] = lado4;
}
public float getLados2(int a){
return lados [a];
}
}[/code]