Buenas tardes,
Aquí dejo mi ejercicio del tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos" para su corrección:
Superclase Figura:
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Figura_CU00694B {
    // Inicialización de Atributos
    protected int dimensionPrincipal;
    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
     */
    public Figura_CU00694B() {
        dimensionPrincipal = 0;
    } // Cierre del Constructor 1
    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
     */
    public Figura_CU00694B(int dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    } // Cierre del Constructor 2
    /**
     * Método para establecer la Medida Principal de la Figura
     * @param valorDimensionPrincipal El parámetro valorDimensionPrincipal define el valor que contendrá la Medida Principal de la Figura
     */
    public void setDimensionPrincipal(int valorDimensionPrincipal) {
        dimensionPrincipal = valorDimensionPrincipal;
    } // Cierre del método para establecer la Medida Principal de la Figura
    /**
     * Método para para obtener la Medida Principal de la Figura
     * @return la Medida Principal de la Figura
     */
    public int getDimensionPrincipal(){ return dimensionPrincipal; }
    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos Figuras tienen igual la Medida Principal
     */
    public boolean equals (Object obj) {
        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Figura.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Figura_CU00694B) {
            /* En segundo lugar, se crea una variable de tipo Figura a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Figura,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
            Figura_CU00694B tmpFigura = (Figura_CU00694B) obj;
            /* Comparación para ver si coinciden su dimensionPrincipal.
             * La dimensionPrincipal se compara con el operador == por ser un tipo primitivo*/
            if (this.dimensionPrincipal == tmpFigura.dimensionPrincipal) {
                return true;
            } else {
                return false; }
        } else {
            return false;
        }
    } //Cierre del método equals
    /**
     * Método para mostar la Información de la Figura
     */
    public void mostrarDatos() {
        System.out.println ("\tMedida Principal de la Figura: " + dimensionPrincipal);
    } // Cierre del método para mostrar información de la Figura
} // Cierre de la Clase
Subclase Cuadrado:
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
 * Clase 2 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Cuadrado_CU00694B extends Figura_CU00694B {
    // No hay campos específicos de la subclase.
    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     */
    public Cuadrado_CU00694B () {
        super();
    } // Cierre del constructor 1
    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     */
    public Cuadrado_CU00694B (int dimensionPrincipal) {        
        super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay campos específicos de la subclase.
    } // Cierre del constructor 2
    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos cuadrados son iguales si coinciden su Medida Principal.
     */
    public boolean equals (Object obj) {
        
        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Cuadrado.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Cuadrado_CU00694B) {
            
            /* En segundo lugar, se crea una variable de tipo Cuadrado a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Cuadrado,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
             Cuadrado_CU00694B tmpCuadrado = (Cuadrado_CU00694B) obj;
            
            /* En este caso se invoca el método equals de la superclase Figura,
             * para que dos cuadrados sean iguales han de coincidir la dimensionPrincipal.*/
            if (super.equals(tmpCuadrado)) {
                return true;
            } else {
                return false;
            }
            
        } else {
            return false;
        }
        
    } // Cierre del método equals
    
    /**
     * Método para clacular el área del cuadrado
     * @return El área del cuadrado.
     */
    public double getAreaCuadrado() {
        return dimensionPrincipal * dimensionPrincipal;
    } // Cierre del método para clacular el área del círculo
    
    /**
     * Método para mostar la Información del Cuadrado
     */
    public void mostrarDatos() {
        super.mostrarDatos();
         System.out.println ("\tPor lo tanto, el Área del Cuadrado es: " + dimensionPrincipal + "*" + dimensionPrincipal + " = " + getAreaCuadrado());
    } // Cierre del método para mostar la Información del Cuadrado
} // Cierre de la Clase
Subclase Círculo:
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
 * Clase 3 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Circulo_CU00694B extends Figura_CU00694B {
    // No hay campos específicos de la subclase.
    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     */
    public Circulo_CU00694B () {
        super();
    } // Cierre del constructor 1
    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     */
    public Circulo_CU00694B (int dimensionPrincipal) {        
        super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay campos específicos de la subclase.
    } // Cierre del constructor 2
    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos círculos son iguales si coinciden su Medida Principal.
     */
    public boolean equals (Object obj) {
        
        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Círculo.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Circulo_CU00694B) {
            
            /* En segundo lugar, se crea una variable de tipo Círculo a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Círculo,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
             Circulo_CU00694B tmpCirculo = (Circulo_CU00694B) obj;
            
            /* En este caso se invoca el método equals de la superclase Figura,
             * con lo que se dice que para que dos círculos sean iguales
             * han de coincidir la dimensionPrincipal.*/
            if (super.equals(tmpCirculo)) {
                return true;
            } else {
                return false;
            }
            
        } else {
            return false;
        }
        
    } // Cierre del método equals
    
    /**
     * Método para clacular el área del círculo
     * @return El área del círculo.
     */
    public double getAreaCirculo() {
        return 3.1416 * (dimensionPrincipal*dimensionPrincipal);
    } // Cierre del método para clacular el área del círculo
    
    /**
     * Método para mostar la Información del Circulo
     */
    public void mostrarDatos() {
        super.mostrarDatos();
         System.out.println ("\tPor lo tanto, el Área del Circulo es: 3.1416*(" + dimensionPrincipal + "*" + dimensionPrincipal + ") = " + getAreaCirculo());
    } // Cierre del método para mostar la Información del Circulo
} // Cierre de la Clase
Clase Test:
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una clase test para probar Herencias y método Equals.<br>
 * Clase 4 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class TestEquals_CU00694B{
    
    public static void main (String [ ] Args) {
        
        /* Creación de 3 objetos Cuadrado
         * Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
        Cuadrado_CU00694B cuadrado1 = new Cuadrado_CU00694B (55);
        Cuadrado_CU00694B cuadrado2 = new Cuadrado_CU00694B (25);
        Cuadrado_CU00694B cuadrado3 = new Cuadrado_CU00694B (55);
        
        /* Creación de 3 objetos Circulo
         * Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
        Circulo_CU00694B circulo1 = new Circulo_CU00694B (48);
        Circulo_CU00694B circulo2 = new Circulo_CU00694B (48);
        Circulo_CU00694B circulo3 = new Circulo_CU00694B (25);
        
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
        
        // Se muestran en pantalla las compraciones de los distintos objetos
        System.out.println ("COMPARATIVA DE LOS CUADRADOS");
        System.out.println ("----------------------------");
        System.out.println ("- El Cuadrado1:");
        cuadrado1.mostrarDatos();
        System.out.println ("- El Cuadrado2:");
        cuadrado2.mostrarDatos();
        System.out.println ("- El Cuadrado3:");
        cuadrado3.mostrarDatos();
        System.out.println ("- Comparaciones:");
        System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado2? " + cuadrado1.equals(cuadrado2) );
        System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado3? " + cuadrado1.equals(cuadrado3) );
        System.out.println ("\t¿Son iguales el cuadrado2 y el cuadrado3? " + cuadrado2.equals(cuadrado3) );
        System.out.println(""); // Se imprime una línea en Blanco de separación
        System.out.println ("COMPARATIVA DE LOS CÍCULOS");
        System.out.println ("--------------------------");
        System.out.println ("- El Círculo1:");
        circulo1.mostrarDatos();
        System.out.println ("- El Círculo2:");
        circulo2.mostrarDatos();
        System.out.println ("- El Círculo3:");
        circulo3.mostrarDatos();
        System.out.println ("- Comparaciones:");
        System.out.println ("\t¿Son iguales la circulo1 y la circulo2? " + circulo1.equals(circulo2) );
        System.out.println ("\t¿Son iguales la circulo1 y la circulo3? " + circulo1.equals(circulo3) );
        System.out.println ("\t¿Son iguales la circulo2 y la circulo3? " + circulo2.equals(circulo3) );
        System.out.println(""); // Se imprime una línea en Blanco de separación
        System.out.println ("Se realiza una ultima comprobación entre uno de los cuadrados y un círculo con la misma Medida Proncipal");
        System.out.println ("\t¿Son iguales la cuadrado2 y la circulo3? " + cuadrado2.equals(circulo3) );
        
    } //Cierre del main
    
} //Cierre de la clase
Espero vuestros comentarios,
Muchas gracias,
Saludos,