Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Hay un error en este ejercicio !

Segun este ejemplo. Gato si puede heradar de "animal" pero el ejercio dice que no se puede. Creo que hay un error.Tanto perro y gato puede heredar de su clase padre animal. De igual manera si puede invocar su metedo jugarConLaser ya que es un metodo propio de la clase gato y no heredada.

class Animal { void hacerSonido() { System.out.println("Hace un sonido genérico"); } }

class Perro extends Animal { void hacerSonido() { System.out.println("El perro ladra"); } }

class Gato extends Animal { void hacerSonido() { System.out.println("El gato maulla"); } }

public class Main { public static void main(String[] args) { Animal miMascota = new Perro(); miMascota.hacerSonido(); // Salida: El perro ladra

    miMascota = new Gato();
    miMascota.hacerSonido(); // Salida: El gato maulla
}

}

1 respuesta

Hola William, espero que estés bien

Entiendo tu confusión, y es genial que estés analizando el código con tanto detalle. Vamos a desglosar un poco la situación para aclarar las cosas.

En el ejercicio que mencionas, la opción A dice que la clase Gato no compila porque faltó sobrescribir el método hacerRuido. Sin embargo, esto no es un error de compilación. En Java, si una clase hija no sobrescribe un método de la clase padre, simplemente hereda el comportamiento del método de la clase padre. En este caso, Gato hereda el método hacerRuido de Animal, por lo que compilará sin problemas, aunque no tenga un comportamiento específico para Gato.

En tu ejemplo de código, tanto Perro como Gato heredan de Animal, lo cual es correcto y funciona perfectamente. La confusión parece venir de la interpretación de las opciones del ejercicio. La opción C y D son correctas en el contexto del ejercicio, ya que un Animal puede hacer ruido, pero no puede llamar a métodos específicos de las clases Perro o Gato como buscarHueso o jugarConLaser, respectivamente. Además, Gato no puede heredar de Perro porque ambos son clases que heredan de Animal, no entre sí.

Espero que esto aclare tu duda. ¡Espero haber ayudado y buenos estudios!