¿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 seleccionar manualmente. Solo necesitan usar un nombre de interfaz unificado y el sistema puede seleccionarlo automáticamente.

El polimorfismo también se divide en dos tipos: 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. Distinguen la semántica según la lista de parámetros (tipo y número) y se implementan mediante enlace estático. Por ejemplo, la construcción de diferentes parámetros definidos en una función de clase. . El polimorfismo dinámico se refiere a funciones sobrecargadas definidas en diferentes clases en una jerarquía de clases. 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. Se implementa mediante enlace dinámico.

El término "polimorfismo" se utilizó por primera vez en biología para referirse a organismos de una misma especie que tenían las mismas características. En la teoría orientada a objetos, la definición de polimorfismo es: la misma operación producirá diferentes resultados de ejecución cuando se aplique a instancias de diferentes clases, es decir, cuando objetos de diferentes clases reciban el mismo mensaje, obtendrán resultados diferentes. El polimorfismo incluye dos categorías: polimorfismo en tiempo de compilación y polimorfismo en tiempo de ejecución.

El polimorfismo dinámico significa que cuando el mismo mensaje es enviado y recibido por objetos de diferentes tipos, puede conducir a comportamientos completamente diferentes. Es decir, sin ninguna intervención del usuario, el comportamiento de las funciones miembro de una clase puede realizar automáticamente ajustes adaptativos según el tipo de objeto que lo llama, y ​​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 tu amigo sois fumadores.

Un día, no trajiste ningún cigarrillo, pero tu amigo tenía n tipos de cigarrillos. ,

p>

Dices: Déjame fumar un cigarrillo,

Un amigo te da uno;

Pasas el filtro del cigarrillo y lo pruebas. como cigarrillo de arena blanca

Quieres otro,

Esta vez es el Rey Furong,

Quieres otro,

Este vez es el Panda

...

¡Lo que se describe arriba es polimorfismo!

Yan a = Arena Blanca

Yan b = Furong King

Smoke c = Panda

Pero descubrí que no existe tal cosa simplemente haciendo referencia a diferentes objetos de clase específicos a través de la clase base "Smoke".

puedes llamar a diferentes objetos. Esto es Polimórfico.

Cuando el cigarrillo entra en tu boca [aún no has descubierto qué tipo de cigarrillo es], puedes identificar qué tipo de cigarrillo es. cigarrillo es simplemente confiando en la acción de "chupar"

p>

Este es el fundamento del polimorfismo.

El polimorfismo debe tener:

1. Clase base y cada subclase

2. La referencia de la clase base apunta al objeto de subclase instanciado.

Tome otro ejemplo de pollo.

El pollo es la base. clase de todos los demás pollos y define un método forma(). Este método puede indicar la forma del pollo. Todas las subcategorías [pavo, faisán, rana, etc.] tienen este método de forma para indicar su propia forma.

Si uso el siguiente método para definir, necesito un pollo específico,

[referencia de clase base = objeto de clase de implementación]

por ejemplo:

Pollo a = nuevo Pavo();

Pollo a = nuevo Rana();

Pollo a = nuevo Faisán();

Pollo a = nuevo Gallina ();

Cuando lo uso, uso la referencia a,

a.shape(), y obtendré la forma de un pollo.

Si defino

Pollo a = new Pavo();

Entonces a.shape toma la forma de un pavo, sin usar información específica

Turquía a = new Turkey() ; Luego obtén la forma del pavo a través de a.shape