Diferencia entre polimorfismo y herencia en programación orientada a objetos

Tabla de contenido:

Diferencia entre polimorfismo y herencia en programación orientada a objetos
Diferencia entre polimorfismo y herencia en programación orientada a objetos

Video: Diferencia entre polimorfismo y herencia en programación orientada a objetos

Video: Diferencia entre polimorfismo y herencia en programación orientada a objetos
Video: Herencia y Polimorfismo | Programación Orientada a Objetos [Video 3] 2024, Noviembre
Anonim

Diferencia clave: polimorfismo frente a herencia en programación orientada a objetos

La Programación Orientada a Objetos (POO) se usa comúnmente para desarrollar software. Muchos lenguajes de programación admiten la programación orientada a objetos. La programación orientada a objetos es una metodología para diseñar un programa usando clases y objetos. Una clase en OOP es un modelo para crear un objeto. Una clase tiene propiedades y métodos. Un objeto es una instancia de una clase. OOP contiene cuatro pilares, como Herencia, Polimorfismo, Abstracción y Encapsulación. Este artículo analiza la diferencia entre polimorfismo y herencia en programación orientada a objetos. La diferencia clave entre el polimorfismo y la herencia en OOP es que el polimorfismo es la capacidad de un objeto para comportarse de múltiples maneras y la herencia es crear una nueva clase utilizando propiedades y métodos de una clase existente.

¿Qué es el polimorfismo en programación orientada a objetos?

El polimorfismo es para indicar múltiples formas. Un objeto puede tener múltiples comportamientos. El polimorfismo se puede dividir en dos categorías. Están sobrecargando y anulando.

Sobrecarga

Consulte el siguiente programa escrito en Java.

Diferencia entre polimorfismo y herencia en programación orientada a objetos
Diferencia entre polimorfismo y herencia en programación orientada a objetos

Figura 01: Sobrecarga

Según el programa anterior, se crea un objeto de tipo A. Al llamar a obj.sum(); dará la salida relacionada con el método sum(). Al llamar a obj.sum(2, 3); dará la salida relacionada con sum(int a, int b). Se puede observar que un mismo objeto tiene diferentes comportamientos dependiendo de la situación. Cuando hay varios métodos con el mismo nombre, pero con diferentes parámetros, se conoce como sobrecarga. También se conoce como enlace estático o polimorfismo en tiempo de compilación.

Sustituir

Otro tipo de polimorfismo es anular. Consulte el siguiente programa escrito en Java.

Diferencia entre polimorfismo y herencia en OOP_Figura 02
Diferencia entre polimorfismo y herencia en OOP_Figura 02

Figura 02: Anulación

Según el programa anterior, hay un método display() en la clase A. La clase B se extiende desde la clase A. Por lo tanto, la clase B puede acceder a todos los métodos de la clase A. Es herencia. El concepto de herencia se describe más adelante.

La Clase B también tiene el mismo método display(). Al crear un objeto de tipo A y llamar al método de visualización, la salida dará B. El método de visualización de clase A es anulado por el método de visualización de clase B. Entonces, la salida es B.

Cuando hay métodos con el mismo nombre y los mismos parámetros pero en dos clases diferentes, y están vinculados con la herencia, se conoce como anulación. También se conoce como enlace tardío, enlace dinámico, polimorfismo en tiempo de ejecución. La sobrecarga y la anulación se denominan polimorfismo. Es un concepto importante en la Programación Orientada a Objetos.

¿Qué es la herencia en programación orientada a objetos?

Consulte el siguiente programa escrito en Java.

Diferencia clave entre polimorfismo y herencia en programación orientada a objetos
Diferencia clave entre polimorfismo y herencia en programación orientada a objetos

Figura 03: Ejemplo de herencia

Según el programa anterior, la clase A tiene el método sum() y la clase B tiene el método sub().

El método sum() de la clase A se puede usar en la clase B usando la palabra clave extend. La reutilización de las propiedades y los métodos de una clase existente para crear una nueva clase se conoce como herencia. Incluso no hay un método sum() en la clase B; se hereda de la clase A. La herencia es útil para la reutilización del código. La clase más antigua se llama clase base, superclase o clase padre. La clase derivada se denomina subclase o clase secundaria.

Tipos de herencia

Hay varios tipos de herencia. Son herencia de un solo nivel, herencia de varios niveles, herencia múltiple, herencia jerárquica y herencia híbrida.

Herencia única

En herencia única, hay una superclase y una subclase. Si la clase A es la superclase y la clase B es la subclase, la clase B puede acceder a todas las propiedades y métodos de la clase A. Solo hay un nivel; por lo tanto, se denomina herencia de un solo nivel.

Herencia multinivel

En la herencia multinivel hay tres niveles de clases. La clase intermedia hereda de la superclase. La subclase hereda de la clase intermedia. Si hay tres clases como A, B y C y A es la súper clase y B es la clase intermedia. Entonces B hereda de A y C hereda de B, es una herencia de varios niveles.

Herencia múltiple

En herencia múltiple, hay muchas superclases y una subclase. Si hay tres superclases llamadas A, B, C y D es la subclase, entonces la clase D puede heredar de A, B y C. La herencia múltiple es compatible con el lenguaje de programación C++. No es compatible con lenguajes de programación como Java o C. Las interfaces se utilizan para implementar la herencia múltiple en estos idiomas.

Herencia jerárquica

Si hay clases llamadas A como superclases y B, C son subclases, esas subclases pueden heredar propiedades y métodos de la clase A. Ese tipo de herencia se conoce como herencia jerárquica.

Herencia híbrida

Hay otro tipo de herencia especial que se conoce como herencia híbrida. Es una combinación de herencias multinivel y múltiples. Si A, B, C y D son clases y B hereda de A y D hereda tanto de B como de C, entonces es una herencia híbrida.

¿Cuáles son las similitudes entre el polimorfismo y la herencia en programación orientada a objetos?

Ambos son conceptos de Programación Orientada a Objetos

¿Cuál es la diferencia entre el polimorfismo y la herencia en programación orientada a objetos?

Polimorfismo vs Herencia en programación orientada a objetos

El polimorfismo es la capacidad de un objeto para comportarse de múltiples formas. La herencia es crear una nueva clase usando propiedades y métodos de una clase existente.
Uso
El polimorfismo se usa para que los objetos llamen a qué forma de métodos en tiempo de compilación y tiempo de ejecución. La herencia se utiliza para la reutilización del código.
Implementación
El polimorfismo se implementa en los métodos. La herencia se implementa en las clases.
Categorías
El polimorfismo se puede dividir en sobrecarga y anulación. La herencia se puede dividir en herencia de un solo nivel, multinivel, jerárquica, híbrida y múltiple.

Resumen: polimorfismo frente a herencia en programación orientada a objetos

El polimorfismo y la herencia son conceptos importantes en la programación orientada a objetos. La diferencia entre el polimorfismo y la herencia en OOP es que el polimorfismo es una interfaz común para múltiples formas y la herencia es crear una nueva clase usando propiedades y métodos de una clase existente. Ambos conceptos son ampliamente utilizados en el Desarrollo de Software.

Descargue el PDF Polimorfismo frente a herencia en programación orientada a objetos

Puede descargar la versión en PDF de este artículo y utilizarlo sin conexión según la nota de la cita. Descargue la versión en PDF aquí Diferencia entre polimorfismo y herencia en OOP

Recomendado: