Herencia en Java OOP:aprenda todos los tipos con un ejemplo
¿Qué es la herencia?
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 los OOP.
En este tutorial, aprenderá-
- Tipos de herencia
- Herencia en Java
- Ejemplo de herencia de Java
- Súper palabra clave
- Aprenda la herencia en OOP con un ejemplo
Tipos de herencia
Estos son los diferentes tipos de herencia en Java:
Herencia única:
En Single Inheritance, una clase se extiende a otra clase (solo una clase).
En el diagrama anterior, la Clase B se extiende solo a la Clase A. La Clase A es una superclase y la Clase B es una Subclase.
Herencia Múltiple:
La herencia múltiple es una de las herencias en los tipos de Java donde una clase se extiende a más de una clase. Java no admite la herencia múltiple.
Según el diagrama anterior, la Clase C se extiende tanto a la Clase A como a la Clase B.
Herencia multinivel:
En herencia multinivel, una clase puede heredar de una clase derivada. Por lo tanto, la clase derivada se convierte en la clase base de la nueva clase.
Como se muestra en el diagrama, la Clase C es una subclase de B y B es una de la subclase Clase A.
Herencia jerárquica:
En la herencia jerárquica, una clase es heredada por muchas subclases.
Según el ejemplo anterior, las clases B, C y D heredan la misma clase A.
Herencia híbrida:
La herencia híbrida es uno de los tipos de herencia en Java, que 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
Herencia de Java es un mecanismo en el que una clase adquiere la propiedad de otra clase. En Java, cuando existe una relación "Is-A" entre dos clases, usamos Herencia. La clase principal se denomina superclase y la clase heredada se denomina subclase. La palabra clave extends
es utilizado por la subclase para heredar las características de la superclase.
La herencia es importante ya que conduce a la reutilización del código.
Sintaxis de herencia de Java:
class subClass extends superClass { //methods and fields }
Ejemplo de herencia de Java
Aquí hay un ejemplo de herencia en Java:
Ejemplo de herencia de Java
class Doctor { void Doctor_Details() { System.out.println("Doctor Details..."); } } class Surgeon extends Doctor { void Surgeon_Details() { System.out.println("Surgen Detail..."); } } public class Hospital { public static void main(String args[]) { Surgeon s = new Surgeon(); s.Doctor_Details(); s.Surgeon_Details(); } }
Súper palabra clave
La palabra clave super es similar a la palabra clave "esta".
La palabra clave super se puede utilizar para acceder a cualquier miembro de datos o métodos de la clase principal.
La palabra clave Super se puede utilizar a nivel de variable, método y constructor.
Sintaxis:
super.<method-name>();
Aprenda 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 ahorro y otra para cheques (también conocida como corriente).
Comparemos y estudiemos cómo podemos abordar la codificación desde una perspectiva de programación estructurada y orientada a objetos.
Enfoque estructural :En programación estructurada, crearemos dos funciones –
- Uno para retirar
- Y el otro para acción de depósito.
Dado que el funcionamiento de estas funciones sigue siendo el mismo en todas las cuentas.
El enfoque de OOP :Mientras usa el enfoque de programación OOPs. Crearíamos dos clases.
- Cada uno tiene la implementación de las funciones de depósito y retiro.
- Esto será trabajo extra redundante.
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 la funcionalidad Cuenta bancaria privilegiada con Facilidad de sobregiro. A título informativo, el sobregiro es una facilidad en la que puede retirar una cantidad superior al saldo disponible en su cuenta.
Enfoque estructural: Usando un enfoque funcional, tengo que modificar mi función de retiro, que ya está probada y establecida. Y agregar un método como el siguiente se encargará de los nuevos requisitos.
Enfoque de OOP: Usando el enfoque de OOP, solo necesita escribir una nueva clase con una implementación única de la función de retiro. Nunca tocamos la pieza de código probada.
Otra solicitud de cambio
¿Qué sucede si el requisito cambia aún más? Me gusta agregar una cuenta de tarjeta de crédito con su propio requisito único de depósitos.
Enfoque estructural: Usando un enfoque estructural, debe cambiar nuevamente la pieza probada del código de depósito.
El enfoque de OOP :Pero usando un enfoque orientado a objetos, simplemente creará una nueva clase con su implementación única del método de depósito (resaltado en rojo en la imagen a continuación).
Entonces, aunque la programación estructural parece un enfoque fácil inicialmente, OOP gana a largo plazo.
Ventajas de la herencia en OOPs
Pero se puede argumentar que en todas las clases, tiene piezas de código repetidas.
Para superar esto, crea una clase principal, dice "cuenta" e implementa 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 las funciones de retiro y depósito en la clase de cuenta.
No es necesario que las funciones se implementen individualmente. Esto es herencia en java. .
Java
- Herencia de Java
- ¿Qué es la interfaz en C# con un ejemplo?
- Conceptos de programación orientada a objetos en Java | Qué es, Fundamentos con Ejemplos
- ¿Qué es la abstracción en OOP? Método y clase abstracta de Java
- Encapsulación en Java OOP con ejemplo
- Método String Length () en Java:cómo encontrar con el ejemplo
- Método Java String charAt() con ejemplo
- Método Java String contains() | Comprobar subcadena con ejemplo
- Java String termina con () método con ejemplo
- Java BufferedReader:cómo leer un archivo en Java con un ejemplo
- Algoritmo de ordenación por inserción en Java con ejemplo de programa