Hola
Aquí dejo la resolución al ejercicio CU00694B del tutorial de programación en Java con BlueJ desde cero, sobreescribir métodos toString y equals
Clase Test
package test;
import aplicacion.*;
public class TestHerencia5 {
public static void main(String[] args) {
Cuadrado cuadrado1 = new Cuadrado(2);
Cuadrado cuadrado2 = new Cuadrado(5);
Cuadrado cuadrado3 = new Cuadrado(2);
Circulo circulo1 = new Circulo(2);
Circulo circulo2 = new Circulo(5);
Circulo circulo3 = new Circulo(2);
System.out.println("El área del cuadrado1 es: "+cuadrado1.calcularArea());
System.out.println("El área del cuadrado2 es: "+cuadrado2.calcularArea());
System.out.println("El área del círculo1 es: "+circulo1.calcularArea());
System.out.println("El área del círculo2 es: "+circulo2.calcularArea());
System.out.println("¿Son iguales el cuadrado1 y el cuadrado2? "+cuadrado1.equals(cuadrado2));
System.out.println("¿Son iguales el cuadrado1 y el cuadrado3? "+cuadrado1.equals(cuadrado3));
System.out.println("¿Son iguales el circulo1 y el circulo2? "+circulo1.equals(circulo2));
System.out.println("¿Son iguales el circulo1 y el circulo3? "+circulo1.equals(circulo3));
}
}
Superclase Figura
package aplicacion;
/**
* Superclase Figura de la que heredan Cuadrado y Circulo
* @author David
*
*/
public class Figura {
private int dimensionPrincipal;
//Constructor
public Figura(){
dimensionPrincipal = 0;
}
//Constructor sobrecargado
public Figura(int dimensionPrincipal){
this.dimensionPrincipal = dimensionPrincipal;
}
//Getters and Setters
public int getDimensionPrincipal() {
return dimensionPrincipal;
}
public void setDimensionPrincipal(int dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
}
}
Subclase Cuadrado que extiende de Figura
package aplicacion;
/**
* Subclase Cuadrado que extiende de Figura
* @author David
*
*/
public class Cuadrado extends Figura {
/**
* Constructor sobrecargado
* @param dimension
*/
public Cuadrado(int dimension) {
super(dimension);
}
/**
* Método encargado de calcular el area de un cuadrado
* @return devuelve el area del cuadrado
*/
public int calcularArea() {
int resultado = (int) Math.pow(super.getDimensionPrincipal(), 2);
return resultado;
}
/**
* Método encargado de comparar si dos cuadrados son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado cuadrado = (Cuadrado) obj;
if (super.getDimensionPrincipal() == (cuadrado.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}
}
Subclase Circulo que extiende de Figura
package aplicacion;
public class Circulo extends Figura{
static final double PI = 3.14;
//Constructor
public Circulo(int dimension){
super(dimension);
}
/**
* Método encargado de calcular el área de un circulo
* @return devuelve el área del círculo
*/
public double calcularArea(){
double resultado = Math.pow(super.getDimensionPrincipal(), 2) * PI;
return resultado;
}
/**
* Método encargado de comparar si dos círculos son iguales en función de su dimension.
* @return true si son iguales y false si no lo son
*/
public boolean equals(Object obj) {
if (obj instanceof Circulo) {
Circulo circulo = (Circulo) obj;
if (super.getDimensionPrincipal() == (circulo.getDimensionPrincipal())) {
return true;
} else {
return false;
}
}
return false;
}
}
Ejecución del programa
El área del cuadrado1 es: 4
El área del cuadrado2 es: 25
El área del círculo1 es: 12.56
El área del círculo2 es: 78.5
¿Son iguales el cuadrado1 y el cuadrado2? false
¿Son iguales el cuadrado1 y el cuadrado3? true
¿Son iguales el circulo1 y el circulo2? false
¿Son iguales el circulo1 y el circulo3? true
Saludos