Logo Studenta

Polimorfismo de Tiempo de Compilación

¡Estudia con miles de materiales!

Vista previa del material en texto

Polimorfismo de Tiempo de Compilación (Compile-Time Polymorphism): 
El polimorfismo de tiempo de compilación, también conocido como polimorfismo estático o 
sobrecarga de métodos, se refiere a la capacidad de un lenguaje de programación para 
seleccionar el método o función correcto durante la compilación en función de los tipos y 
números de argumentos proporcionados en la llamada. En este caso, la decisión sobre qué 
método invocar se toma en el momento de la compilación. 
 
Características del Polimorfismo de Tiempo de Compilación: 
 
Sobrecarga de Métodos: El polimorfismo de tiempo de compilación se logra mediante la 
sobrecarga de métodos, donde se definen varios métodos con el mismo nombre pero 
diferentes parámetros. 
 
Resolución Estática: La resolución de qué método se debe llamar se determina en tiempo de 
compilación basándose en la información estática disponible, como la firma del método y los 
tipos de argumentos. 
 
Ejemplo: La selección entre sumar(int a, int b) y sumar(double a, double b) en función de los 
argumentos pasados. 
 
Polimorfismo de Tiempo de Ejecución (Runtime Polymorphism): 
El polimorfismo de tiempo de ejecución, también conocido como polimorfismo dinámico o 
sobrescritura de métodos, se refiere a la capacidad de un objeto para responder a una llamada 
a un método de manera diferente según el tipo real del objeto en tiempo de ejecución. En este 
caso, la decisión sobre qué método invocar se toma en el momento de la ejecución. 
 
Características del Polimorfismo de Tiempo de Ejecución: 
 
Sobrescritura de Métodos: El polimorfismo de tiempo de ejecución se logra mediante la 
sobrescritura de métodos en clases derivadas, donde una subclase proporciona una 
implementación diferente para un método heredado de la clase base. 
 
Resolución Dinámica: La resolución de qué método se debe llamar se realiza en tiempo de 
ejecución según el tipo real del objeto en memoria, no solo en función del tipo de referencia. 
 
Ejemplo: La llamada a un método sonido() en una jerarquía de clases de animales, donde cada 
subclase (por ejemplo, "Perro" y "Gato") tiene su propia implementación del método. 
 
Diferencias y Ventajas: 
 
El polimorfismo de tiempo de compilación se logra mediante la sobrecarga de métodos, 
mientras que el polimorfismo de tiempo de ejecución se logra mediante la sobrescritura de 
métodos. 
 
El polimorfismo de tiempo de compilación se resuelve en función de los tipos y números de 
argumentos pasados en la llamada, mientras que el polimorfismo de tiempo de ejecución se 
resuelve en función del tipo real del objeto en memoria. 
 
El polimorfismo de tiempo de ejecución es una característica esencial de la herencia y permite 
tratar objetos de diferentes clases de manera uniforme a través de interfaces comunes. 
 
Conclusión: 
Tanto el polimorfismo de tiempo de compilación como el polimorfismo de tiempo de ejecución 
son conceptos importantes en la programación orientada a objetos. El primero se basa en la 
sobrecarga de métodos y permite la selección de métodos en tiempo de compilación, mientras 
que el segundo se basa en la sobrescritura de métodos y permite que los objetos respondan a 
llamadas de métodos de manera diferente según su tipo real en tiempo de ejecución. Ambos 
tipos de polimorfismo contribuyen a la flexibilidad y la reutilización del código en el diseño de 
software orientado a objetos.

Continuar navegando