Estou fazendo uns exercícios aqui pra praticar e me deparei com um erro, não entendi o porque dele, essa classe quadrado está funcionando normalmente, porém, a que vem em seguida, a classe retângulo, tá dando um erro, sendo que os princípios das 2 classes são os mesmos, poderiam me ajudar??
public class Quadrado extends Poligono implements Diagonal {
public Quadrado(double altura, double base) {
super(altura, base);
}
@Override
public double area() {
return getBase() * 2;
}
@Override
public double base() {
return this.base();
}
@Override
public double altura() {
return this.altura();
}
@Override
public double calcularDiag() {
return (Math.sqrt(2)) * this.getAltura();
}
@Override
public double perimetro() {
return ((getBase() + getBase()) * 2);
}
public String toString() {
return "A Diagonal do quadrado é " + calcularDiag() + ", o perímetro do quadrado é " + perimetro()
+ ", e a área do quadrado é " + area()+ "\n";
}
}
classe retângulo…
public class Retangulo extends Poligono implements Diagonal {
public Retangulo(double altura, double base) {
super(altura, base);
}
@Override
public double base() {
return this.base();
}
@Override
public double altura() {
return this.altura();
}
@Override
public double calcularDiag() {
return (altura() * 2 + base() * 2) * 0.5;
//return ((Math.pow(altura(), 2) + Math.pow(base(), 2)) * 0.5);
}
@Override
public double perimetro() {
return getAltura() + getBase() + getAltura() + getBase();
}
@Override
public double area() {
return getBase() * getAltura();
}
public String toString() {
return "A Diagonal do retângulo é " + calcularDiag() + ", o perímetro do retângulo é " + perimetro()
+ ", e a área do retângulo é " + area()+ "\n";
}
}
erro: Exception in thread “main” java.lang.StackOverflowError
at Retangulo.altura(Retangulo.java:18)
at Retangulo.altura(Retangulo.java:18)
at Retangulo.altura(Retangulo.java:18)