Herencia

En este ejercicio aprenderás el concepto de **herencia** en Java, un pilar fundamental de la **programación orientada a objetos**. Explorarás cómo utilizar clases base y derivadas para reutilizar código, lo que te permitirá extender funcionalidades y mejorar la estructura de tu código. A través de ejemplos prácticos, aprenderás a sobrescribir métodos, invocar los métodos de la clase base y comprender cómo la herencia facilita la creación de jerarquías de clases, promoviendo la reutilización y la organización eficiente del código.

Tema

Programación Orientada a Objetos (POO)

Ejercicio Java

En este ejercicio, crearás un programa en Java que defina una clase base llamada Animal con atributos comunes como nombre y edad, y métodos para acceder a estos atributos. Luego, crearás una clase derivada llamada Perro que herede de la clase Animal y sobrescriba el método hacerSonido() para ofrecer una implementación específica para los perros. El objetivo es entender cómo la herencia permite reutilizar código y extender la funcionalidad de las clases en Java.

Instrucciones:

  1. Crea una clase base llamada Animal con los atributos nombre y edad, y métodos getters y setters para estos atributos.
  2. Crea una clase derivada llamada Perro que herede de la clase Animal y sobrescriba el método hacerSonido() para que imprima un sonido específico de los perros, como "¡Guau!".
  3. En el método principal, crea un objeto de la clase Perro, establece su nombre y edad, y llama al método hacerSonido() para mostrar el comportamiento sobrescrito.

Este ejercicio te ayudará a comprender cómo **heredar** funcionalidades de una clase base a una clase derivada, cómo sobrescribir métodos y cómo utilizar la herencia para promover la reutilización del código en Java.


public class Animal {
    // Atributos comunes
    private String nombre;
    private int edad;

    // Constructor
    public Animal(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    // Getters y Setters
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    // Método que será sobrescrito
    public void hacerSonido() {
        System.out.println("El animal hace un sonido.");
    }
}

public class Perro extends Animal {
    // Constructor que hereda de Animal
    public Perro(String nombre, int edad) {
        super(nombre, edad);
    }

    // Sobrescribir el método hacerSonido
    @Override
    public void hacerSonido() {
        System.out.println("¡Guau!");
    }

    public static void main(String[] args) {
        // Crear un objeto de la clase Perro
        Perro perro = new Perro("Rex", 5);

        // Mostrar los detalles del perro
        System.out.println("Nombre: " + perro.getNombre());
        System.out.println("Edad: " + perro.getEdad() + " años");

        // Llamar al método sobrescrito
        perro.hacerSonido();
    }
}

 Salida:

Nombre: Rex
Edad: 5 años
¡Guau!

Este programa muestra cómo **heredar** funcionalidades de una clase base a una clase derivada, y cómo sobrescribir métodos para personalizar el comportamiento de una clase derivada en Java. Este concepto de **herencia** es clave en la **programación orientada a objetos** para reutilizar y extender el código.


 Comparte este ejercicio JAVA