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.