Herencia en Java OOPs con Ejemplo

¿Qué es herencia?

La herencia es un mecanismo en el que una clase adquiere la propiedad de otra clase. Por ejemplo, un niño hereda los rasgos de sus padres. Con la herencia, podemos reutilizar los campos y métodos de la clase existente. Por lo tanto, la herencia facilita la reutilización y es un concepto importante de OOP.

En este tutorial, aprenderá-

Tipos de herencia

Hay varios tipos de herencia en Java:

  1. Herencia única:

En herencia única, una clase amplía otra clase (una sola clase).

En el diagrama de arriba, la Clase B se extiende solo a la Clase A. La Clase A es una súper clase y la Clase B es una Subclase.

  1. Herencia Múltiple:

En Herencia Múltiple, una clase que extiende más de una clase. Java no es compatible con herencia múltiple.

Según el diagrama anterior, la Clase C amplía la Clase A y la Clase B ambas.

  1. Herencia multinivel:

En la herencia multinivel, una clase puede heredar de una clase derivada. Por lo tanto, la clase derivada se convierte en la clase base para la nueva clase.

Como se muestra en el diagrama, la Clase C es la subclase de B y B es una de la subclase Clase A.

  1. Herencia jerárquica:

En Herencia jerárquica, una clase es heredada por muchas subclases.

Como en el ejemplo anterior, las clases B, C y D heredan la misma clase A.

  1. Herencia Híbrida:

La herencia híbrida es una combinación de herencia única y múltiple.

Según el ejemplo anterior, todos los miembros públicos y protegidos de la Clase A se heredan en la Clase D, primero a través de la Clase B y, en segundo lugar, a través de la Clase C.

Herencia en Java

  • En Java, cuando existe una relación “Is-A” entre dos clases, utilizamos Herencia
  • La clase padre se denomina superclase y la clase heredada es la subclase
  • La palabra clave “extender” es utilizada por la subclase para heredar las características de superclase
  • La herencia es importante ya que conduce a la reutilización del código

Sintaxis de herencia de Java:

Ejemplo de herencia de Java

Super Palabra clave

La palabra clave super es similar a la palabra clave “this”.

La palabra clave super se puede usar para acceder a cualquier miembro de datos o métodos de la clase principal.

La palabra clave Súper se puede usar a nivel de variable, método y constructor.

Sintaxis:

Aprender la herencia en OOP con un ejemplo

Considere la misma aplicación bancaria del ejemplo anterior.

Se supone que debemos abrir dos tipos de cuentas diferentes, una para guardar y otra para verificar (también conocida como actual).

Comparemos y estudiemos cómo podemos abordar la codificación desde una perspectiva de programación estructurada y orientada a objetos. Enfoque estructural : en la programación estructurada, crearemos dos funciones:

  1. Uno para retirarse
  2. Y el otro para la acción de depósito.

Dado que el funcionamiento de estas funciones sigue siendo el mismo en todas las cuentas.

El enfoque de OOP : al usar el enfoque de programación de OOP . Creamos dos clases.

  • Cada uno tiene la implementación de las funciones de depósito y retiro.
  • Esto redundará en trabajo extra.

Solicitud de cambio en el software

Ahora hay un cambio en la especificación de requisitos para algo que es tan común en la industria del software. Se supone que debe agregar una cuenta bancaria privilegiada con la función de sobregiro. En un contexto, el sobregiro es una facilidad en la que puede retirar un monto superior al saldo disponible en su cuenta.

Enfoque estructural: Utilizando el enfoque funcional, tengo que modificar mi función de extracción, que ya está probada y puesta a punto. Y agregue un método como a continuación se encargará de los nuevos requisitos.

Enfoque de OOP: Usando el enfoque de OOP, solo necesita escribir una nueva clase con implementación única de la función de extracción. Nunca tocamos el fragmento de código probado.

Otra solicitud de cambio

¿Qué pasa si el requerimiento cambia más? Me gusta agregar una cuenta de tarjeta de crédito con su propio requisito único de depósitos .

Enfoque estructural: al usar el enfoque estructural, debe volver a cambiar el código de depósito comprobado.

Enfoque de OOP : pero usando el enfoque orientado a objetos, solo creará una nueva clase con su implementación única de método de depósito (resaltado en rojo en la imagen a continuación).

Entonces, aunque inicialmente la programación estructural parece ser un enfoque fácil, la OOP gana a largo plazo.

Ventaja de la herencia en OOPs

Pero uno puede argumentar que en todas las clases, usted tiene piezas repetidas de código.

Para superar esto, cree una clase principal, diga “cuenta” e implemente la misma función de depósito y retiro. Y haga que las clases secundarias hereden la clase de “cuenta”. Para que tengan acceso a retirar y depositar funciones en la clase de cuenta.

No se requiere que las funciones se implementen individualmente. Esto es Herencia en Java. .

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *