Ejercicio Java
En este ejercicio, crearás un programa en Java que utilice **polimorfismo** para manejar diferentes tipos de objetos que comparten un comportamiento común pero tienen implementaciones específicas. Primero, definirás una clase base llamada Animal con un método llamado hacerSonido(). Luego, crearás varias clases derivadas como Perro y Gato, que sobrescribirán este método para proporcionar sus propios sonidos. Finalmente, aprenderás cómo utilizar una variable de tipo Animal para almacenar instancias de diferentes clases derivadas y ejecutar los métodos sobrescritos de manera dinámica.
Instrucciones:
- Crea una clase base llamada
Animal con un método hacerSonido() que imprima un sonido genérico.
- Crea al menos dos clases derivadas, como
Perro y Gato, que sobrescriban el método hacerSonido() para imprimir sonidos específicos, como "¡Guau!" y "¡Miau!" respectivamente.
- En el método principal, crea instancias de
Perro y Gato utilizando una variable de tipo Animal y llama al método hacerSonido() en ambos casos.
Este ejercicio te ayudará a entender cómo el **polimorfismo** permite que un mismo método se comporte de manera diferente según el objeto que lo invoque, lo cual es esencial para crear aplicaciones más flexibles y reutilizables en Java.
Ver código de ejemplo
public class Animal {
// Método que será sobrescrito
public void hacerSonido() {
System.out.println("El animal hace un sonido.");
}
}
public class Perro extends Animal {
// Sobrescribir el método hacerSonido
@Override
public void hacerSonido() {
System.out.println("¡Guau!");
}
}
public class Gato extends Animal {
// Sobrescribir el método hacerSonido
@Override
public void hacerSonido() {
System.out.println("¡Miau!");
}
}
public class Main {
public static void main(String[] args) {
// Crear objetos de tipo Animal, pero de clases derivadas
Animal animal1 = new Perro();
Animal animal2 = new Gato();
// Llamar al método sobrescrito
animal1.hacerSonido(); // Debería imprimir "¡Guau!"
animal2.hacerSonido(); // Debería imprimir "¡Miau!"
}
}
Salida:
¡Guau!
¡Miau!
En este programa, se utiliza **polimorfismo** para que una variable de tipo Animal pueda referirse a objetos de diferentes clases derivadas como Perro y Gato, y llamar a los métodos sobrescritos correspondientes. Este enfoque hace que el código sea más flexible y reutilizable en aplicaciones orientadas a objetos.