Saltar al contenido principal
Publicado el

Herencia en Java

Compartir:

Introducción

La herencia es uno de los cuatro pilares de la programación orientada a objetos (OOP), junto con la encapsulación, el polimorfismo y la abstracción. A través de la herencia, es posible crear una nueva clase basada en una ya existente, lo que permite la reutilización de código y la construcción de relaciones jerárquicas.

Fundamentos de la Herencia

Beneficios de la Herencia

  1. Reutilización de Código: No es necesario reescribir el mismo código repetidamente. La subclase hereda todos los miembros de la superclase.
  2. Extensibilidad: Se puede extender la superclase existente para incorporar nuevos atributos y comportamientos.
  3. Jerarquía de Clases: Establece una relación jerárquica entre la superclase y la subclase.

Restricciones de la Herencia en Java

En Java, la herencia se implementa utilizando la palabra clave extends. Sin embargo, existen algunas restricciones:

  1. Herencia Simple: Java no soporta la herencia múltiple a través de clases. Una clase solo puede heredar de una única clase.
  2. Constructores e Inicializadores Estáticos: Estos no son heredados por las subclases.
  3. Relación de Asociación: Si una clase hereda de otra, es una relación "es un" (is-a). Por ejemplo, si Hijo es una extensión de Padre, entonces Hijo es un Padre.

La palabra clave protected

La palabra clave protected en Java permite que un miembro de la clase sea accedido directamente por cualquier clase dentro del mismo paquete o por subclases. Es una forma de proporcionar más acceso que private, pero aún así restringiendo el acceso generalizado como public.

package com.caffeinealgorithm.programaremjava;

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

    /*
      Nombre: Nelson Silva
      Edad: 28
      Mi comida favorita es el arroz con mariscos.
    */
  }
}

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);
  }
}

Conclusión

La herencia es una herramienta poderosa en Java que permite a los programadores escribir código más modular y reutilizable. Al comprender los fundamentos y las sutilezas de la herencia, estarás mejor preparado para afrontar los desafíos complejos de la programación orientada a objetos en Java.

Happy coding!