Saltar al contenido principal
Publicado el

Más sobre la Herencia en Java

Compartir:

Introducción

Si bien la primera introducción a la herencia en Java nos ayuda a comprender sus conceptos fundamentales, en este artículo nos adentraremos en temas más avanzados como la sobreescritura de métodos y la abstracción.

Sobreescritura de Métodos

Cuando una subclase hereda de una superclase, también hereda sus métodos. Sin embargo, en muchos casos queremos que la subclase tenga una implementación diferente para uno o más de esos métodos. Esto se logra mediante la sobreescritura de métodos, usando la anotación @Override.

Ventajas de la Sobreescritura de Métodos:

  1. Flexibilidad: Permite que la subclase proporcione una implementación específica de un método que ya es proporcionado por su superclase.
  2. Reutilización de Código: Incluso al heredar un método de una superclase, podemos adaptarlo a las necesidades específicas de la subclase.
  3. Mejora en la Legibilidad: Al usar la anotación @Override, señalamos claramente que el método está siendo sobreescrito, haciendo el código más comprensible.
package com.caffeinealgorithm.programaremjava;

public class MasSobreLaHerencia {
  public void Run() {
    var persona = new Hijo();
    persona.informacion();
    persona.comidaFavorita();

    /*
      Nombre: Nelson Silva
      Edad: 28
      Mi comida favorita es la lasaña.
    */
  }
}

class Padre {
  protected String apellido = "Silva";

  public void comidaFavorita() {
    System.out.println("Mi comida favorita es el arroz con mariscos.");
  }
}

class Hijo extends Padre {
  private String nombre = "Nelson";
  private int edad = 28;

  public void informacion() {
    System.out.printf("Nombre: %s %s\n", nombre, apellido);
    System.out.printf("Edad: %d\n", edad);
  }

  @Override
  public void comidaFavorita() {
    System.out.println("Mi comida favorita es la lasaña.");
  }
}

Abstracción y Métodos Abstractos

Se mencionó brevemente el término "abstract". Este es un concepto importante en Java, que permite crear clases y métodos que no pueden ser instanciados. Son, esencialmente, plantillas que otras clases deben seguir.

  1. Clases Abstractas: No pueden ser instanciadas directamente. Sirven como base para otras clases.
  2. Métodos Abstractos: Se declaran en la clase abstract pero no tienen cuerpo. Las subclases deben proporcionar la implementación de estos métodos.

Exploraremos este tema en detalle en un próximo artículo, garantizando una comprensión completa de la abstracción y cómo se integra con la herencia.

Conclusión

La herencia, combinada con conceptos como la sobreescritura de métodos y la abstracción, hace de la programación orientada a objetos una herramienta poderosa para crear software modular y reutilizable. Estos son solo algunos de los conceptos avanzados en Java, y seguir explorándolos profundizará aún más tus conocimientos.

Happy coding!