Introducción al polimorfismo

El polimorfismo es el concepto con la ayuda de la cual se puede realizar una sola acción de diferentes maneras. Se deriva de dos palabras griegas, es decir, poli y morfos. "Poli" significa muchos y "morfos" significa formas. En adelante, el polimorfismo implica muchas formas. En la programación orientada a objetos, se puede definir como la capacidad de un lenguaje de programación para procesar objetos de manera diferente dependiendo de su clase o tipo de datos. Básicamente, podemos definirlo como la capacidad de las clases derivadas para redefinir los métodos.

Comprensión

Los dos tipos de polimorfismo son el polimorfismo en tiempo de compilación y el polimorfismo en tiempo de ejecución. El polimorfismo en tiempo de compilación se realiza mediante la sobrecarga del método y el polimorfismo de tiempo de ejecución mediante la anulación del método. El polimorfismo en tiempo de ejecución también llamado Dynamic Method Dispatch es un proceso en el que la llamada a un método anulado se resuelve en tiempo de ejecución a pesar del tiempo de compilación. Aquí, el método anulado se llama a través de una variable de referencia de una clase primaria. Además, los miembros de datos no pueden lograr el polimorfismo de tiempo de ejecución.

¿Cómo hace el polimorfismo trabajar tan fácil?

Es una característica de programación orientada a objetos. Usando el polimorfismo, una clase puede exhibir diferentes funcionalidades incluso cuando tienen una interfaz común. Por lo tanto, podemos decir que este largo plazo explica un concepto básico. Lo notable sobre el polimorfismo es que todo el código de trabajo en varias clases no requiere saber acerca de la clase que está utilizando, ya que su forma de uso es la misma.

Es una característica de programación orientada a objetos. Usando el polimorfismo, una clase puede exhibir diferentes funcionalidades incluso cuando tienen una interfaz común. Por lo tanto, podemos decir que este largo plazo explica un concepto muy básico. Lo notable sobre el polimorfismo es que todo el código de trabajo en varias clases no requiere saber acerca de la clase que está utilizando, ya que su forma de uso es la misma.

Considere un escenario del mundo real para el polimorfismo. Tome un ejemplo de un botón. Sabemos que aplicando algo de presión podemos hacer clic en el botón, pero no sabemos el resultado de presionar el botón o la referencia de su uso. El punto aquí a tener en cuenta es, de cualquier manera, el resultado no afectaría la forma en que se usa.

Entonces, el objetivo básico del polimorfismo es hacer objetos que sean intercambiables dependiendo de las necesidades.

¿Qué puedes hacer con el polimorfismo?

Cuando la clase secundaria tiene el mismo método que el declarado en la clase primaria, lo llamamos anulación de método.

O, en otras palabras, si una clase secundaria proporciona la implementación del método que ha sido declarado por su clase principal, se llama anulación del método. Algunas cosas para recordar en la anulación de métodos son:

  • El método debe tener el mismo nombre que el mencionado en la clase padre
  • El método también debe tener el mismo parámetro que uno mencionado en la clase padre.
  • Debe haber la herencia, es decir, la relación IS-A.

¿Trabajando con polimorfismo?

Cuando una clase tiene varios métodos que tienen el mismo nombre pero diferentes parámetros, se denomina sobrecarga de métodos.

Supongamos que tenemos que realizar una sola operación, luego tener el mismo nombre que los métodos aumentaría la legibilidad del programa. Las formas de sobrecargar el método en Java son:

  • Cambiar el número de argumentos
  • Cambiar el tipo de datos

Sin embargo, en Java, no es posible si cambiamos el tipo de retorno del método solamente.

Ventajas

  • El polimorfismo ayuda a los programadores a reutilizar el código y también las clases que alguna vez fueron escritas para ser probadas e implementadas. (Reutilización del código)
  • Un solo nombre de variable puede almacenar variables de múltiples tipos de datos (int, float, double, long, etc.).
  • Aumenta la legibilidad del programa.

¿Por qué deberíamos usar polimorfismo?

Además del polimorfismo dinámico y el polimorfismo estático, hay algunas características de programación de Java que exhiben polimorfismo además de los dos tipos principales.

Estos son: coerción, parámetros polimórficos y sobrecarga del operador

Coerción

Comprendamos la coerción con un ejemplo muy simple. Considere una cadena con valor "clase de coerción". Considere otro número entero con valor 1. Ahora, ¿qué sucede cuando concatena un valor de cadena con un valor entero? El resultado de esta concatenación sería "clase de coerción: 1". Esto es lo que se llama coerción. La conversión de tipo implícita se realiza para evitar errores de tipo. Lo realiza el compilador.

Sobrecarga del operador

Antes de comenzar con la sobrecarga del operador, también conocida como sobrecarga del método, veamos un ejemplo. Considere una cadena con el valor "Operador" y otra cadena como "Sobrecarga". Use el símbolo más (+) con estas dos cadenas al igual que agrega dos enteros. El (+) concatenará estas dos cadenas. En el caso de dos enteros, se devuelve la suma de dos enteros. Cuando un símbolo u operador tiene la capacidad de cambiar su significado dependiendo de la forma en que se usan, el tipo de polimorfismo exhibido se llama sobrecarga del operador.

Parámetros

En el polimorfismo, un objeto puede aparecer en muchas formas. En Java, se refiere a permitir el acceso a un objeto de una de las siguientes maneras, como:

1. utilizando la variable de referencia de su clase o superclase principal

2. utilizando la variable de referencia de la clase en la que existe.

¿Por qué necesitamos polimorfismo?

La razón principal por la que se necesita el polimorfismo es que este concepto se usa ampliamente en la implementación de la herencia. Desempeña un papel importante al permitir que los objetos tengan estructuras internas variadas al compartir la misma interfaz externa. El polimorfismo se establece claramente como uno que está mapeado para muchos.

Alcance

La vinculación es conectar una llamada al método con el cuerpo del método. Tenemos dos tipos de encuadernación.

Enlace estático (enlace temprano): cuando el tipo de objeto se determina en tiempo de compilación.

Enlace dinámico (enlace tardío): cuando el tipo de objeto se determina en tiempo de ejecución.

Conclusión

El polimorfismo se considera así como una de las características muy importantes de la programación orientada a objetos. Si habla de un ejemplo de polimorfismo en la vida real, podría ser que una persona al mismo tiempo puede tener diferentes características, por ejemplo, un hombre al mismo tiempo es un hijo, un esposo, un empleado. Entonces, la misma persona adquiere un comportamiento diferente en diferentes situaciones. Esto, en términos orientados a objetos, se llama polimorfismo, una característica importante de la programación orientada a objetos.

Artículos recomendados

Esta ha sido una guía de ¿Qué es el polimorfismo? Aquí discutimos el funcionamiento, el alcance, la necesidad y las ventajas del polimorfismo. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Qué es JavaScript?
  2. ¿Qué es HTML?
  3. ¿Qué es python?
  4. Polimorfismo en C #
  5. Matrices en programación Java
  6. Conversión de tipos en Java con tipos y ejemplos
  7. Guía de conversión en Java con ejemplos
  8. Enlace Estático y Enlace Dinámico | Introduccion | Usos