Buenas, DRANXZ88.
Creo que has hecho un ejercicio estupendo y has entendido bien el concepto de sobreescriptura de los métodos.
Saludos
PD: Si no quieres utilizar la conversión de lo que devuelve el método "getDimensionPrincipal" mediante las instrucciones:
Double.valueOf(getDimensionPrincipal()
podías haber declarado dicho método como un tipo Double en la superclase "Figura" así:
Clase Figura:
public class Figura {
protected Double dimensionPrincipal;
public Figura() {
}
public Figura(Double dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
}
public Double getDimensionPrincipal() {
return dimensionPrincipal;
}
public void setDimensionPrincipal(Double dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
}
}
Y las otras dos clases así:
Clase Circulo:
public class Circulo extends Figura {
public Circulo() {
}
public Circulo(double dimensionPrincipal) {
super(dimensionPrincipal);
}
public double CalcularArea() {
double areaCirculo;
double dimension;
dimension = getDimensionPrincipal();
areaCirculo = Math.PI * Math.sqrt(dimension);
return areaCirculo;
}
public boolean equals(Object obj) {
if (obj instanceof Circulo) {
Circulo tmpCirculo = (Circulo) obj;
if (super.getDimensionPrincipal().equals(tmpCirculo.getDimensionPrincipal())) {
return true;
} else {
return false;
}
} else {
return false;
}
}
}
Clase Cuadrado:
public class Cuadrado extends Figura {
public Cuadrado() {
}
public Cuadrado(double dimensionPrincipal) {
super(dimensionPrincipal);
}
public double calcularArea() {
double areaCuadrado;
double dimension;
dimension = getDimensionPrincipal();
areaCuadrado = dimension * dimension;
return areaCuadrado;
}
public boolean equals(Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado tmpCuadrado = (Cuadrado) obj;
if (super.getDimensionPrincipal().equals(tmpCuadrado.getDimensionPrincipal())) {
return true;
} else {
return false;
}
} else {
return false;
}
}
}
Es simplemente otra manera de hacer el ejercicio, pero quiero recalcar, has hecho el ejercicio correctamente.