Red de conocimiento informático - Material del sitio web - Polimorfismo en programación Polimorfismo

Polimorfismo en programación Polimorfismo

El término "polimorfismo" se utilizó por primera vez en biología para referirse a organismos de una misma especie que tenían características diferentes. En la teoría de la programación orientada a objetos, la definición de polimorfismo es: 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 es una de las características importantes de la programación orientada a objetos y otra manifestación importante de extensibilidad después de la "herencia". Los objetos toman acciones en función de los mensajes que reciben. El mismo mensaje puede dar lugar a comportamientos completamente diferentes cuando lo reciben diferentes objetos. Este fenómeno se llama polimorfismo.

El polimorfismo incluye dos categorías: polimorfismo en tiempo de compilación y polimorfismo en tiempo de ejecución. Es decir: el polimorfismo también se divide en dos tipos: polimorfismo estático y polimorfismo dinámico. 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.

En un entorno donde el usuario no realiza ninguna intervención, el comportamiento de las funciones miembro de la 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 Esta es la naturaleza dinámica del programa. Es decir, cuando el mismo mensaje es enviado y recibido por objetos de diferentes tipos, puede dar lugar a comportamientos completamente diferentes. El polimorfismo es una variedad de expresiones. Específicamente, puede representarse 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.

Da un ejemplo para ilustrar: #include?std::cout;class?A?{public:virtual?void?test()?{?cout<test();}Agregar virtual antes de la función de prueba de Clase A, es decir, cuando es polimórfico en tiempo de ejecución, el el resultado de salida del programa es: ccc

Si virtual no se agrega antes de la función de prueba de Clase A, es decir, cuando es polimórfico durante la compilación, el resultado de salida del programa es: aaa

Polimorfismo de C ++ Morfismo: agregue la palabra clave virtual delante de la función de la clase base, reescriba la función en la clase derivada y la función correspondiente se llamará de acuerdo con el tipo real del objeto en tiempo de ejecución. Si el tipo de objeto es una clase derivada, se llama a la función de la clase derivada; si el tipo de objeto es una clase base, se llama a la función de la clase base.