La programación orientada a objetos (OOP) se usa comúnmente para desarrollar software. Muchos lenguajes de programación soportan 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 plano para crear un objeto. Una clase tiene propiedades y métodos. Un objeto es una instancia de una clase. La OOP contiene cuatro pilares, tales como herencia, polimorfismo, abstracción y encapsulación. Este artículo discute la diferencia entre el polimorfismo y la herencia en la POO. los diferencia clave entre el polimorfismo y la herencia en la POO es que El polimorfismo es la capacidad de un objeto para comportarse de múltiples maneras y Herencia es crear una nueva clase usando las propiedades y métodos de una clase existente.
1. Resumen y diferencia clave
2. ¿Qué es el polimorfismo en la POO?
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
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..
Consulte el siguiente programa escrito en Java.
Figura 01: Sobrecarga
De acuerdo con 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 la suma (int a, int b). Se puede observar que el 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 es conocido como enlace estático o polimorfismo de tiempo de compilación.
Otro tipo de polimorfismo es primordial. Consulte el siguiente programa escrito en Java.
Figura 02: Anulando
De acuerdo con el programa anterior, hay un método de visualización () 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 de visualización (). Al crear un objeto de tipo A y llamar al método de visualización, la salida dará a B. El método de visualización de Clase A se invalida 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 es conocido como Enlace tardío, enlace dinámico, polimorfismo en tiempo de ejecución. Sobrecarga y anulación se denominan como polimorfismo. Es un concepto importante en Programación Orientada a Objetos..
Consulte el siguiente programa escrito en Java.
Figura 03: Ejemplo de herencia
De acuerdo con 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 en una clase existente para crear una nueva clase se conoce como Herencia. Incluso no hay 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 mayor se llama clase base, superclase o clase de padres. La clase derivada se llama subclase o clase infantil.
Hay varios tipos de herencia. Son herencia de un solo nivel, herencia de múltiples niveles, herencia múltiple, herencia jerárquica y herencia híbrida..
En herencia única, hay una súper clase 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. Solo hay un nivel; Por lo tanto, se llama como herencia de un solo nivel..
En la herencia de niveles múltiples hay tres niveles de clases. La clase intermedia hereda de la súper clase. 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 varios niveles.
En la herencia múltiple, hay muchas súper clases y una subclase. Si hay tres súper clases llamadas A, B, C y D es la subclase, entonces la clase D puede heredar de A, B y C. Se admite la herencia múltiple en el lenguaje de programación C ++. No se admite en lenguajes de programación como Java o C #. Las interfaces se utilizan para implementar herencia múltiple en estos idiomas..
Si hay clases llamadas A como súper clases 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.
Hay otro tipo de herencia especial que se conoce como herencia híbrida. Es una combinación de múltiples niveles y múltiples herencias. 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.
Polimorfismo vs Herencia en OOP | |
El polimorfismo es la capacidad de un objeto de comportarse de múltiples maneras.. | La herencia consiste en crear una nueva clase utilizando 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 un solo nivel, multinivel, jerárquico, híbrido y herencia múltiple. |
El polimorfismo y la herencia son conceptos importantes en la programación orientada a objetos. La diferencia entre el polimorfismo y la herencia en la OOP es que el polimorfismo es una interfaz común a múltiples formas y la herencia es crear una nueva clase utilizando las propiedades y métodos de una clase existente. Ambos conceptos son ampliamente utilizados en el desarrollo de software..
Puede descargar la versión en PDF de este artículo y usarla para fines fuera de línea, como se indica en la nota de cita. Por favor descargue la versión PDF aquí Diferencia entre polimorfismo y herencia en OOP