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.
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.
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.
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