¿Qué es el polimorfismo?

El polimorfismo es una variedad de expresiones. Específicamente, se puede expresar mediante "una interfaz externa y múltiples métodos de implementación internos". Por ejemplo, una pila en una computadora puede almacenar datos en varios formatos, incluidos números enteros, coma flotante o caracteres. No importa qué tipo de datos se almacenen, la implementación del algoritmo de la pila es la misma. Para diferentes tipos de datos, los programadores no necesitan seleccionarlos manualmente. Solo necesitan usar nombres de interfaz unificados y el sistema puede seleccionarlos automáticamente.

El polimorfismo también se puede dividir en polimorfismo estático y polimorfismo dinámico. El polimorfismo estático se refiere a funciones con el mismo nombre definidas en una clase o función. Diferencian la semántica según la lista de parámetros (tipo y número), implementada mediante enlace estático, como la definición de constructores con diferentes parámetros en una clase. El polimorfismo dinámico se refiere a funciones sobrecargadas definidas en diferentes clases en una jerarquía de clases. Estas funciones sobrecargadas generalmente tienen la misma función, por lo que la semántica debe distinguirse según la clase del objeto señalado por el puntero y se implementa mediante enlace dinámico.

El término "polimorfismo" se utilizó por primera vez en biología para referirse a organismos de la misma raza que tenían las mismas características. En la teoría orientada a objetos, el polimorfismo se define como: la misma operación que actúa sobre instancias de diferentes clases producirá diferentes resultados de ejecución, es decir, cuando objetos de diferentes clases reciben el mismo mensaje, obtendrán resultados diferentes. El polimorfismo incluye polimorfismo en tiempo de compilación y polimorfismo en tiempo de ejecución.

El polimorfismo dinámico significa que cuando objetos de diferentes tipos reciben el mismo mensaje, puede conducir a comportamientos completamente diferentes. Es decir, el comportamiento de las funciones miembro de una clase se puede ajustar automáticamente según el tipo de objeto que la llama, sin ninguna intervención del usuario. El ajuste se produce mientras el programa se está ejecutando. El polimorfismo es una de las características importantes de la programación orientada a objetos. Es otra manifestación importante de escalabilidad después de la "herencia".

Por ejemplo:

Tú y tus amigos son fumadores.

Un día, no tienes cigarrillos y tus amigos tienen n tipos de cigarrillos.

Dices, fuma un cigarrillo,

Un amigo te regala uno;

Pasas por el filtro del cigarrillo y saboreas el sabor del cigarrillo Baisha.

Quieres otro,

Esta vez es Rey Furong,

Un trago más,

Esta vez es Panda.

...

¡La descripción anterior es polimórfica!

Humo a = Baisha

Humo b = Rey Furong

Humo c = Panda

Pero se descubrió que solo a través del " clase base smoke" No hay referencias a diferentes objetos de clase concretos.

Permite llamar a diferentes objetos, lo cual es polimorfismo.

Cuando el cigarrillo entra en tu boca [no has averiguado qué tipo de cigarrillo es], puedes identificar qué tipo de cigarrillo es sólo con la acción de “fumar”

Esta es la máquina de suspensión polimórfica.

El polimorfismo debe tener:

1. Clase base y varias subclases

2. Referencia de clase base, que apunte al objeto de subclase instanciado.

Tomemos otro ejemplo de un pollo.

Pollo es la clase base de todos los demás pollos y define un método shape() que puede representar la forma del pollo. Todas las subclases [pavos, faisanes, ranas, etc. ] tiene esta forma para expresar su propia forma.

Si defino que necesito un pollo específico de la siguiente manera,

[referencia de clase base = objeto que implementa esta clase]

Por ejemplo:

Pollo a = nuevo pavo();

Pollo a = nuevo rana();

Pollo a = nuevo faisán();

pollo a = gallina nueva();

Cuando lo uso, uso comillas a,

A.shape() y obtienes una forma de pollo.

Si defino

pollo a = new pavo();

entonces a.shape obtiene la forma de un pavo sin usar archivos .

Pavo a = new pavo(); luego obtiene la forma del pavo a través de a.shape