Tipos de herencia en Java con ejemplos
Publicado: 2022-06-26La herencia en Java permite a los desarrolladores crear nuevas clases con las existentes. Permite la reutilización del código. La herencia puede ser tanto herencia única como herencia multinivel. La herencia disminuye la redundancia del código, lo hace más legible y mantenible y, por lo tanto, actúa como una herramienta para aumentar la calidad del software.
Importancia de la herencia
En Java, la herencia es el método por el cual una clase adquiere las propiedades y funcionalidades de otra clase. La herencia ahorra tiempo, reduce la redundancia, hace que el código sea más legible, comprensible y mantenible, y actúa como una herramienta para aumentar la calidad del software. La herencia tiene muchas aplicaciones vitales en el lenguaje de programación Java. La herencia permite a los desarrolladores crear nuevas clases utilizando las existentes. Las clases heredadas actúan como plantillas o planos. La herencia proporciona reutilización del software. Las clases heredadas actúan como una relación padre-hijo. Los métodos heredados hacen que las clases heredadas sean independientes. independiente.
La jerarquía de herencia denota una relación padre-hijo entre los diferentes niveles de herencia. El nivel superior de herencia se conoce como "Superclase" o "Clase principal".
Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.
Sintaxis de la herencia de Java
clase Subclase-nombre extiende Superclase-nombre
{
//métodos y campos
}
La palabra clave extendida indica que está creando una nueva clase que hereda toda la funcionalidad de su padre. Significa “aumentar” o realzar lo que ya existe.
Ejemplo: en el siguiente ejemplo de herencia, la clase Bicycle es una clase base, la clase MountainBike es una clase derivada que amplía la clase Bicycle y la clase Test es una clase controladora para ejecutar un programa.
Aporte:
// Programa Java para ilustrar el
// concepto de herencia
// clase base
bicicleta de clase {
// la clase Bicicleta tiene dos campos
equipo de int público;
velocidad de int público;
// la clase Bicicleta tiene un constructor
Bicicleta pública (equipo int, velocidad int)
{
this.gear = engranaje;
this.speed = velocidad;
}
// la clase Bicicleta tiene tres métodos
public void applyBrake(int decremento)
{
velocidad -= decremento;
}
aceleración del vacío público (incremento int)
{
velocidad += incremento;
}
// método toString() para imprimir información de Bicicleta
Cadena pública a Cadena ()
{
return ("Número de engranajes son" + engranaje + "\n"
+ “la velocidad de la bicicleta es ” + velocidad);
}
}
// clase derivada
clase MountainBike extiende Bicicleta {
// la subclase MountainBike agrega un campo más
public int seatHeight;
// la subclase MountainBike tiene un constructor
Bicicleta de montaña pública (equipo int, velocidad int,
altura de inicio int)
{
// invocando el constructor de clase base (bicicleta)
super(marcha, velocidad);
altura del asiento = altura inicial;
}
// la subclase MountainBike agrega un método más
public void setHeight(int nuevoValor)
{
asientoAltura = nuevoValor;
}
// anulando el método toString()
// de Bicicleta para imprimir más info
@Anular la cadena pública a la cadena ()
{
return (super.toString() + “\nla altura del asiento es “
+ altura del asiento);
}
}
// clase de controlador
Prueba de clase pública {
public static void main(String args[])
{
MountainBike mb = new MountainBike(3, 100, 25);
System.out.println(mb.toString());
}
}
Salida :
No de engranajes son 3
la velocidad de la bicicleta es 100
la altura del asiento es de 25
Términos utilizados en la herencia
- Clase : Una clase es un grupo de objetos que tienen propiedades comunes. Es como un manual de instrucciones o un plano a partir del cual se crean otras unidades individuales.
- Subclase/Clase secundaria : una subclase es una clase que hereda la otra clase. También se denomina clase derivada, clase extendida o clase secundaria.
- Superclase/clase principal: la superclase es la clase de la que una subclase hereda las características. También se denomina clase base o clase principal.
- Reutilización : la reutilización es un principio de diseño clave en la programación orientada a objetos. Significa que puede reutilizar los campos y métodos de las clases existentes al crear otras nuevas en lugar de repetirse una y otra vez con codificación individual cada vez.
Cursos y artículos populares sobre ingeniería de software
Programas Populares | |||
Programa PG Ejecutivo en Desarrollo de Software - IIIT B | Programa de Certificación Blockchain - PURDUE | Programa de Certificado de Ciberseguridad - PURDUE | MSC en Ciencias de la Computación - IIIT B |
Otros artículos populares | |||
Salario de ingeniero de nube en los EE. UU. 2021-22 | Salario del arquitecto de soluciones de AWS en EE. UU. | Salario de desarrollador de backend en los EE. UU. | Salario de desarrollador front-end en EE. UU. |
Salario de desarrollador web en EE. UU. | Preguntas de la entrevista de Scrum Master en 2022 | ¿Cómo iniciar una carrera en seguridad cibernética en 2022? | Opciones de carrera en los EE. UU. para estudiantes de ingeniería |
Tipos de herencia de Java
1. Herencia única
Herencia única significa que una clase extiende a otra o implementa varias interfaces a la vez con el mismo modificador de acceso o sin modificador de acceso, es decir, público o privado. La subclase creada hereda todas las funciones miembro y miembros de datos de su base/superclase, excepto aquellos declarados como privados, y los miembros y amigos de la subclase pueden acceder a estos miembros.
Consulte el siguiente ejemplo:
Aporte:
// Programa Java para ilustrar el
// concepto de herencia única
importar java.io.*;
importar java.lang.*;
importar java.util.*;
clase uno {
public void print_A()
{
Sistema.salida.println(“A”);
}
}
la clase dos extiende uno {
public void print_for() { System.out.println(“for”); }
}
// Clase de controlador
clase pública Principal {
public static void main(String[] args)
{
dos g = nuevo dos();
g.imprimir_A();
g.print_for();
g.imprimir_manzana();
}
}
Salida :
A
Para
Manzana
2. Herencia multinivel
La herencia multinivel es aquella en la que existe una cadena de herencia. n En Java, una clase derivada no puede acceder directamente a los miembros del abuelo. Cuando tienes una jerarquía de herencia como esta en la que cada nuevo nivel hereda de otra persona o cosa anterior a ellos (o viceversa), se vuelve difícil para cualquier objeto dado en cualquier grupo porque solo pueden usar lo que está disponible en sus respectivos niveles; por lo tanto, ¡hace que la depuración sea más tediosa de lo necesario!
Aporte:
// Programa Java para ilustrar el
// concepto de herencia multinivel
importar java.io.*;
importar java.lang.*;
importar java.util.*;
clase uno {
public void print_Inheritance()
{
System.out.println(“Herencia”);
}
}
la clase dos extiende uno {
public void print_in() { System.out.println(“in”); }
}
clase tres extiende dos {
public void print_Inheritance()
{
Sistema.salida.println(“Java”);
}
}
// Clase derivada
clase pública Principal {
public static void main(String[] args)
{
tres g = nuevo tres();
g.print_Herencia();
g.print_in();
g.imprimir_Java();
}
}
Salida :
Herencia
En
Java
3. Herencia jerárquica
Dos clases en una jerarquía pueden heredar una de la otra. Por ejemplo, si tanto el Perro como el Gato pertenecen a Animal, entonces habrá una herencia jerárquica en la que serán descendientes de esa clase.
Aporte:
clase animal{
void comer(){System.out.println(“comiendo…”);}
}
clase Perro extiende Animal{
void bark(){System.out.println(“ladrando…”);}
}
clase Gato extiende Animal{
void miau(){System.out.println(“maullando…”);}
}
clase TestInheritance3{
public static void main(String args[]){
Gato c=nuevo Gato();
c.miau();
c.comer();
//c.ladrido();//CTError
}}
Salida :
maullando…
comiendo…
4. Herencia múltiple (a través de interfaces)
Java no admite herencia múltiple con clases, pero es posible lograrlas a través de interfaces. En la imagen a continuación, la Clase C se deriva tanto de A como de B, lo que significa que comparten algunas características y tienen diferentes implementaciones para otras según sus necesidades específicas en la ejecución del código o el cumplimiento de los métodos requeridos por los usuarios (i).
Aporte:
// Programa Java para ilustrar el
// concepto de herencia multiple
importar java.io.*;
importar java.lang.*;
importar java.util.*;
interfaz uno {
public void print_eye();
}
interfaz dos {
public void print_for();
}
la interfaz tres extiende uno, dos {
public void print_eye();
}
niño de clase implementa tres {
@Anular el vacío público print_eye()
{
System.out.println(“Ojo”);
}
public void print_for() { System.out.println(“for”); }
}
// Clase derivada
clase pública Principal {
public static void main(String[] args)
{
hijo c = nuevo hijo();
c.imprimir_ojo();
c.print_for();
c.imprimir_ojo();
}
}
Salida :
Ojo
por
Ojo
5. Herencia híbrida (a través de interfaces)
La herencia híbrida es un tipo de programación que nos permite mezclar dos o más tipos. Las clases no pueden hacer esto solas porque solo tienen un conjunto de métodos, lo que significa que necesitamos otro objeto para que todo funcione correctamente, pero las interfaces ofrecen tranquilidad al permitirle saber cómo se verá su programa antes de que se haya escrito cualquier código. !
Aporte
(Referencia)
Las clases A y B extienden la clase C → Herencia jerárquica
La clase D extiende la clase A → herencia única
clase C
{
disp vacío público ()
{
Sistema.salida.println(“C”);
}
}
clase A extiende C
{
disp vacío público ()
{
Sistema.salida.println(“A”);
}
}
clase B extiende C
{
disp vacío público ()
{
Sistema.salida.println(“B”);
}
}
clase D extiende A
{
disp vacío público ()
{
Sistema.salida.println(“D”);
}
public static void main(String args[]){
Dobj = nuevo D();
obj.disp();
}
}
Producción:
D
Si desea obtener información detallada sobre la herencia en Java y otros conceptos de programación orientada a objetos, le recomendamos el programa Executive PG de upGrad en desarrollo de software de IIIT-Bangalore . El curso de 13 meses está diseñado por profesores y profesionales de la industria de clase mundial para desarrollar competencias en más de 30 herramientas y software. Incluyó más de 400 horas de contenido, más de 30 estudios de casos y proyectos relevantes para la industria y más de 10 sesiones en vivo para ayudarlo a lograr los resultados deseados; El curso ofrece tres especializaciones, a saber, desarrollo de pila completa, desarrollo de back-end en la nube y seguridad cibernética.
¡Reserve su asiento en el programa hoy!
¿Cuáles son los cuatro tipos de Herencia?
Los cuatro tipos de herencia en Java son: 1. Herencia jerárquica 2. Herencia híbrida 3. Herencia única 4. Herencia multinivel
Explicar el polimorfismo en Java.
El polimorfismo en Java es un concepto de Programación Orientada a Objetos bajo el cual los objetos en los programas pueden tomar múltiples formas. Si lo hace, permite que un solo objeto realice la misma acción de muchas maneras.
Explicar los subprocesos múltiples en Java.
Multithreading en Java es una función a través de la cual se pueden ejecutar varias partes (cada una llamada hilo) de un programa al mismo tiempo para permitir una utilización óptima de la CPU.