Diferencia clave: polimorfismo frente a herencia en OOP
La programación orientada a objetos (OOP) 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 utilizando clases y objetos. Una clase en OOP es un plan para crear un objeto. Una clase tiene propiedades y métodos. Un objeto es una instancia de una clase. La POO contiene cuatro pilares tales como Herencia, Polimorfismo, Abstracción y Encapsulación. Este artículo analiza la diferencia entre polimorfismo y herencia en OOP. La diferencia clave entre polimorfismo y herencia en OOP es que el polimorfismo es la capacidad de un objeto para comportarse de múltiples formas y la herencia es crear una nueva clase utilizando propiedades y métodos de una clase existente.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es el polimorfismo en OOP
3. Qué es la herencia en OOP
4. Similitudes entre polimorfismo y herencia en OOP
5. Comparación lado a lado - Polimorfismo frente a herencia en OOP en forma tabular
6. Resumen
¿Qué es el polimorfismo en la programación orientada a objetos?
El polimorfismo es 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 al obj.sum (2,3); dará la salida relacionada con sum (int a, int b). Se puede observar que un mismo objeto tiene comportamientos diferentes según 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.
Primordial
Otro tipo de polimorfismo es predominante. Consulte el siguiente programa escrito en Java.
Figura 02: Anulación
De acuerdo con el programa anterior, hay un método display () en la clase A. La clase B se extiende desde la clase A. Por lo tanto, todos los métodos en la clase A son accesibles por la clase B. 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 la 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
Existen 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, todas las propiedades y métodos de la clase A son accesibles por la clase B. Sólo hay un nivel; por lo tanto, se denomina herencia de un solo nivel.
Herencia multinivel
En 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 superclase y B es la clase intermedia. Entonces B hereda de A y C hereda de B, es una herencia de niveles múltiples.
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 lenguajes.
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 tipo de herencia se conoce como herencia jerárquica.
Herencia híbrida
Existe otro tipo de herencia especial que se conoce como herencia híbrida. Es una combinación de herencias de varios niveles y múltiples. Si A, B, C y D son clases y B hereda de A y D hereda de B y C, entonces es una herencia híbrida.
¿Cuáles son las similitudes entre polimorfismo y herencia en OOP?
Ambos son conceptos de programación orientada a objetos
¿Cuál es la diferencia entre polimorfismo y herencia en OOP?
Diferencia del medio del artículo antes de la mesa
Polimorfismo vs herencia en OOP |
|
El polimorfismo es la capacidad de un objeto para comportarse de múltiples formas. | La herencia consiste en crear una nueva clase utilizando propiedades y métodos de una clase existente. |
Uso | |
El polimorfismo se utiliza 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 métodos. | La herencia se implementa en clases. |
Categorías | |
El polimorfismo se puede dividir en sobrecarga y anulación. | La herencia se puede dividir en herencia de un solo nivel, de varios niveles, jerárquica, híbrida y múltiple. |
Resumen: polimorfismo frente a herencia en la programación orientada a objetos
El polimorfismo y la herencia son conceptos importantes en la programación orientada a objetos. La diferencia entre Polimorfismo y Herencia en OOP es que Polimorfismo es una interfaz común para múltiples formas y Herencia es crear una nueva clase usando propiedades y métodos de una clase existente. Ambos conceptos se utilizan ampliamente en el desarrollo de software.
Descargue el PDF Polimorfismo vs Herencia en OOP
Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí Diferencia entre polimorfismo y herencia en OOP