Descripción general de la herencia en Java

A diferencia de otros lenguajes de programación como C, Java ofrece un mecanismo por el cual los miembros de datos y los métodos de una clase son heredados por otra clase. Este proceso se conoce como Herencia en Java. Para heredar de una clase, se usa la palabra clave 'extend'. La herencia en Java permite la reutilización del código, de modo que una clase solo necesita escribir las características únicas y el resto del código se puede extender desde la otra clase. La clase que hereda de la otra clase se conoce como subclase o clase secundaria y la clase que se hereda se conoce como clase primaria o superclase. La sintaxis, los tipos y la implementación de la herencia se analizarán en las siguientes secciones.

Tipos de herencia en Java

La herencia significa una relación IS-A que también se conoce como relación padre-hijo. Padre e hijo ya se mencionan en la parte de introducción.

Antes de pasar a los tipos de Herencia en Java, primero, veamos la sintaxis de Herencia.

Sintaxis:

class apple extends fruit
(
//methods and fields
)

Aquí, la manzana es la subclase y la fruta es la clase principal. Esto significa que la manzana tiene ciertas propiedades únicas y también tiene las propiedades de la fruta.

Hay 4 tipos diferentes de herencia en Java.

  • Herencia única
  • Herencia multinivel
  • Herencia jerárquica
  • Herencia múltiple (con la ayuda de interfaces)

Ahora, veamos cada uno de ellos en detalle.

1. Herencia individual

Una clase que se extiende solo una clase. En el siguiente ejemplo, la clase apple amplía la clase fruit.

es decir, Fruit es la superclase y Apple es la subclase que extiende las propiedades y el comportamiento de la clase Fruit.

A continuación se muestra la demostración de herencia única en Java.

Código:

//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)

Salida:

2. Herencia multinivel

En este tipo de herencia, una clase se extenderá desde otra clase y la clase derivada actuará como la clase base para otra clase.

Por ejemplo, en la figura, una clase de cuatro ruedas es la clase principal y el automóvil es la clase derivada de la clase de cuatro ruedas. Al mismo tiempo, el auto de clase puede ser la clase base para la clase Maruti.

Código:

//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)

Salida:

3. Herencia jerárquica

En la herencia jerárquica, una clase base tiene más de una clase secundaria, lo que significa que las propiedades de una clase son adquiridas por diferentes clases.

Por ejemplo, un vehículo de clase tiene subclases de autos, bicicletas, scooters.

Código:

//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)

Salida:

4. Herencia múltiple

Las herencias múltiples en java son un tipo de herencia en el que una clase tiene más de una clase padre.

Por ejemplo, la clase C adquiere las propiedades de la clase A y la clase B.

Pero, en Java, la herencia múltiple solo se puede lograr mediante el uso de interfaces.

Supongamos que se implementan múltiples herencias como otros tipos de herencia, un error en tiempo de compilación puede ocurrir de la siguiente manera.

Código:

//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)

Aquí, la salida no se mostrará ya que contiene un error en tiempo de compilación.

Importancia de la herencia en Java

  • Reutilización del código: la herencia ayuda a reducir la reescritura del código. es decir, el código puede ser reutilizado por otras clases y la clase secundaria solo tiene que escribir sus propias propiedades únicas. Esto reduce el consumo de tiempo y la complejidad del código.
  • Para la anulación de métodos: la clase secundaria declara un método que ya está presente en la clase principal, y luego se conoce como anulación de métodos.
Nota: Suponga que si una clase no se reutiliza, se puede usar la palabra clave final.

Sintaxis:

final class A
(
. . .
)
Class B extends A
(
. . .
)

En este caso, se generará un error que dice 'No se puede heredar de la A final'.

Conclusión

La herencia en Java es una propiedad mediante la cual las propiedades y el comportamiento de una clase son adquiridos por otra clase para proporcionar la reutilización del código. Existen diferentes tipos de herencia en Java, como la herencia única, la herencia multinivel, la herencia jerárquica y la herencia múltiple en Java. En este documento, se cubren varios aspectos importantes de la herencia.

Artículos recomendados

Esta es una guía de herencia en Java. Aquí discutimos la importancia y los diferentes tipos de herencia en Java junto con la sintaxis, ejemplos e implementación de código. También puede consultar los siguientes artículos para obtener más información.

  1. JScrollPane en Java
  2. Sesiones en PHP
  3. Ordenar en Java
  4. ¿Qué es el recolector de basura Java?
  5. Herramientas de implementación de Java
  6. Anulación en Java
  7. Herencia en PHP