Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Introducción al Polimorfismo | Visión General del Polimorfismo
POO en C++
course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Introducción al Polimorfismo

Note
Definición

Polimorfismo es un concepto fundamental. Derivado del griego que significa "muchas formas", permite que objetos de diferentes classes sean tratados como un objeto de una superclase común. El aspecto más significativo es la capacidad de diferentes entidades para responder de manera propia al mismo mensaje o llamada de método.

Tipos de polimorfismo

Existen dos tipos principales de polimorfismo: en tiempo de compilación (estático) y en tiempo de ejecución (dinámico). Comprender cómo y cuándo utilizar cada uno es fundamental para escribir código flexible y eficiente.

  • Polimorfismo en tiempo de compilación: ocurre mediante la sobrecarga de funciones u operadores, donde el método a ejecutar se determina en tiempo de compilación.

  • Polimorfismo en tiempo de ejecución: utiliza funciones virtuales, permitiendo que las clases derivadas sobrescriban los métodos de la clase base, eligiendo el método correcto en tiempo de ejecución.

Aplicación y necesidad del polimorfismo

Una excelente manera de comprender el polimorfismo es mediante una analogía del mundo real. Considere una interfaz gráfica de usuario con un botón. Este botón puede comportarse de manera diferente según el contexto: puede funcionar como un botón de carga, un botón de reinicio o un botón de cancelar.

Cada botón ejecuta una acción distinta al ser pulsado, pero todos ellos funcionan esencialmente como botones. Observa la implementación teórica de este concepto.

UploadButton.h

UploadButton.h

ResetButton.h

ResetButton.h

CancelButton.h

CancelButton.h

copy
1234
class UploadButton : public Button { public: void onClick() { std::cout << "Upload" << std::endl; } };

Considerando que todos los botones comparten el mismo método onClick() con diferentes implementaciones, profundicemos más. ¿Qué sucede si necesitamos una función que acepte un objeto perteneciente a una de las classes de botón como parámetro?

main.cpp

main.cpp

copy
1234567891011
void user_clicked_upload_button(const UploadButton& btn) { btn.onClick(); } void user_clicked_reset_button(const ResetButton& btn) { btn.onClick(); } void user_clicked_cancel_button(const CancelButton& btn) { btn.onClick(); }

Como puedes ver, crear manualmente funciones separadas para cada botón puede generar complejidad, especialmente durante las modificaciones, ya que cada función debe ser editada individualmente si surgen problemas. Además, en la función principal, serán necesarias comprobaciones adicionales para determinar qué función llamar. La polimorfismo permite resolver fácilmente estos problemas.

question mark

¿Cuál es el significado literal del término polimorfismo?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Introducción al Polimorfismo

Note
Definición

Polimorfismo es un concepto fundamental. Derivado del griego que significa "muchas formas", permite que objetos de diferentes classes sean tratados como un objeto de una superclase común. El aspecto más significativo es la capacidad de diferentes entidades para responder de manera propia al mismo mensaje o llamada de método.

Tipos de polimorfismo

Existen dos tipos principales de polimorfismo: en tiempo de compilación (estático) y en tiempo de ejecución (dinámico). Comprender cómo y cuándo utilizar cada uno es fundamental para escribir código flexible y eficiente.

  • Polimorfismo en tiempo de compilación: ocurre mediante la sobrecarga de funciones u operadores, donde el método a ejecutar se determina en tiempo de compilación.

  • Polimorfismo en tiempo de ejecución: utiliza funciones virtuales, permitiendo que las clases derivadas sobrescriban los métodos de la clase base, eligiendo el método correcto en tiempo de ejecución.

Aplicación y necesidad del polimorfismo

Una excelente manera de comprender el polimorfismo es mediante una analogía del mundo real. Considere una interfaz gráfica de usuario con un botón. Este botón puede comportarse de manera diferente según el contexto: puede funcionar como un botón de carga, un botón de reinicio o un botón de cancelar.

Cada botón ejecuta una acción distinta al ser pulsado, pero todos ellos funcionan esencialmente como botones. Observa la implementación teórica de este concepto.

UploadButton.h

UploadButton.h

ResetButton.h

ResetButton.h

CancelButton.h

CancelButton.h

copy
1234
class UploadButton : public Button { public: void onClick() { std::cout << "Upload" << std::endl; } };

Considerando que todos los botones comparten el mismo método onClick() con diferentes implementaciones, profundicemos más. ¿Qué sucede si necesitamos una función que acepte un objeto perteneciente a una de las classes de botón como parámetro?

main.cpp

main.cpp

copy
1234567891011
void user_clicked_upload_button(const UploadButton& btn) { btn.onClick(); } void user_clicked_reset_button(const ResetButton& btn) { btn.onClick(); } void user_clicked_cancel_button(const CancelButton& btn) { btn.onClick(); }

Como puedes ver, crear manualmente funciones separadas para cada botón puede generar complejidad, especialmente durante las modificaciones, ya que cada función debe ser editada individualmente si surgen problemas. Además, en la función principal, serán necesarias comprobaciones adicionales para determinar qué función llamar. La polimorfismo permite resolver fácilmente estos problemas.

question mark

¿Cuál es el significado literal del término polimorfismo?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 1
some-alt