Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué son las Clases Abstractas en Java?
¿Qué es la Programación genérica en Java?
¿Qué son las Interfaces de Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Cómo trabajar con Maps en Java?
¿Como funcionan los arrays en Java?
¿Cómo generar excepciones en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como Herencia en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

Dentro del ámbito del desarrollo de software hay muchos lenguajes disponibles para programar, muchos tienen usos determinados, como por ejemplo Java, que es un lenguaje de programación orientado a objetos.

En los lenguajes para POO, se utilizan conceptos específicos para su objetivo.

Entre ellos se encuentra el concepto de herencia.

¿Qué es y para qué sirve la herencia en Java?

La herencia es uno de los conceptos más importantes de la programación orientada a objetos, y su principal ventaja es la capacidad de utilizar el mismo código que hemos programado en una clase, en otras clases que heredan de ella sus métodos (funciones) y sus atributos (variables).

Cuando una clase hereda de otra, se le llama subclase, clase hija o clase derivada.

Y la clase que es heredada, se llama clase base, padre o superclase.

Las clases hijas reciben las funciones de su clase padre y además implementan sus propias funciones o métodos.Si no fuera así no tendría sentido crear clases hijas.

A su vez la clase hija puede ser heredada por otras clases hijas. 

Con la palabra reservada extends le decimos a la clase hija de qué clase padre hereda sus propiedades.

Tipos de Herencia en Java:

Los tipos de herencia son las relaciones que implementamos entre las clases.

  • Simple/única una clase hereda de otra.
  • Multinivel una clase hereda de una clase padre y otra clase hereda de esta (de la clase hija), hay dos o más niveles.
  • Múltiple consiste en que una clase hija hereda de dos o más clases padre (ejemplo: clase padre Vehículo, y clase padre Motor).
  • Jerárquica es similar a un árbol, de una clase base derivan dos o más clases y de cada una de ellas a su vez derivan otras clases.

Híbrida combina modelos de herencia, por ejemplo herencia simple y herencia múltiple

Cómo utilizar la herencia entre clases:

Las funciones de la clase padre deben estar definidas como public para que puedan ser utilizadas desde cualquier otra clase. Si no están definidas como públicas, solo se podrán usar dentro de la clase que las declara.

Los métodos que pertenezcan a la clase hija o derivada, no podrán ser utilizados por la clase padre o superclase, aunque sí podrán ser usados por las clases derivadas de la clase hija.

Por herencia automáticamente todas las clases hijas pueden utilizar los métodos implementados en la clase padre (también llamada superclase).

La herencia hasta un tercer nivel es manejable, más de eso se vuelve complejo.

Ejemplo:

//clase padre, base o superclase


class Persona {
    
    // atributos de la clase padre
    String nombre;
    int edad;
    int telefono;

}



// clase hija, subclase o clase derivada

class Cliente extends Persona{
    
    //atributo de la clase hija
    int credito;
}


// otra clase hija

class Trabajador extends Persona{

    //atributo propio de la clase hija
    int salario;
}

Donde Cliente y Trabajador son clases derivadas (hijas) de la clase Persona que es la clase padre, de la cual heredan métodos y atributos.

Dentro de las herencias se encuentran las clases abstractas, que heredan a sus clases hijas la indicación de la obligatoriedad de implementar métodos que han sido definidos en la clase padre, pero no han sido implementados, están vacíos.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: