Red de conocimiento informático - Material del sitio web - ¿Qué significa polimorfismo?

¿Qué significa polimorfismo?

El polimorfismo se basa ante todo en la herencia. El polimorfismo significa que diferentes subclases sobrescribirán los métodos de la clase principal después de heredar de la clase principal, es decir, el mismo método de la clase principal se expresará en diferentes formas en las subclases heredadas. Otra condición para el polimorfismo es que se debe utilizar una nueva subclase de la clase principal al crear una subclase.

Polimorfismo significa literalmente "estados múltiples". En los lenguajes orientados a objetos, el polimorfismo se define como múltiples implementaciones diferentes de una interfaz. Para citar la descripción del polimorfismo de Charlie Calverts: el polimorfismo es una técnica que le permite establecer un objeto principal igual a uno o más de sus hijos, de modo que después de la asignación, el objeto principal pueda basarse en su objeto secundario actualmente asignado. Realiza diferentes funciones en función de sus características (extraído de "Dentro de Delphi 4: Técnicas de programación").

En resumen, es una frase: se permite asignar un puntero de un tipo de subclase a un puntero de un tipo de clase principal. El polimorfismo se implementa a través de funciones virtuales tanto en Object Pascal como en C++.

Polimorfismo significa que una misma entidad tiene múltiples formas al mismo tiempo. Es una característica importante de la programación orientada a objetos (OOP). Si un lenguaje sólo admite clases pero no polimorfismo, sólo significa que está basado en objetos en lugar de orientado a objetos.

El polimorfismo en C++ se materializa en dos aspectos: tiempo de ejecución y compilación. El polimorfismo en tiempo de ejecución es un polimorfismo dinámico en el que el objeto específico al que se hace referencia solo se puede determinar en tiempo de ejecución. El polimorfismo en tiempo de compilación es un polimorfismo estático y la forma de uso del objeto se determina en el momento de la compilación.

Polimorfismo: La misma operación en diferentes objetos puede tener diferentes interpretaciones y producir diferentes resultados de ejecución. En tiempo de ejecución, el puntero a la clase base se puede utilizar para llamar a métodos que implementan la clase derivada.

En C++ el polimorfismo se consigue mediante: funciones virtuales, clases abstractas, sobrecarga y plantillas (la sobrecarga no tiene nada que ver con el polimorfismo).

Polimorfismo en OC: distintos objetos responden de forma diferente ante un mismo mensaje. Las subclases pueden anular los métodos de la clase principal.

El polimorfismo permite cambiar el nombre de los métodos. Los parámetros o valores de retorno pueden ser pasados ​​o devueltos por la clase principal.

El polimorfismo también hace referencia al estilo de vida especial de los celentéreos en el mundo biológico. El fenómeno de la alternancia generacional entre los estados de hidra y medusa.

Al considerar diferentes objetos de subclase como clases principales, puede proteger las diferencias entre diferentes objetos de subclase, escribir código genérico y realizar programación genérica para adaptarse a las necesidades cambiantes.

Después de la asignación, la referencia del tipo padre puede realizar diferentes operaciones según las características del objeto hijo que se le asigna actualmente. Es decir, el padre actúa como el hijo, en lugar de que el hijo actúe como el padre.

El resultado de usar la herencia es que cuando se crea una familia de clases, la familia de clases se reconoce tratando los objetos de la subclase como objetos de la clase base. Este reconocimiento también se llama transmisión. La importancia de esta identificación es que podemos escribir un programa sólo para la clase base, pero se puede adaptar a la familia de clases porque el compilador encontrará automáticamente el objeto correcto para realizar la operación. Este fenómeno también se conoce como polimorfismo. El medio para lograr el polimorfismo también se denomina enlace dinámico.

En pocas palabras, cuando creas una referencia a un objeto de clase principal, el objeto al que hace referencia puede ser un objeto de la clase principal o un objeto de su subclase. Cuando una subclase de Java tiene las mismas funciones que la clase principal, la función de la subclase se llama cuando el objeto de la clase principal llama a la función por referencia.