¿Puedes enumerar los diferentes tipos de polimorfismo en programación orientada a objetos?
sobes.tech AI
Respuesta de la IA
En la programación orientada a objetos (POO), se destacan varios tipos principales de polimorfismo:
-
Polimorfismo de subtipos (Subtype Polymorphism) — el tipo más común, implementado mediante herencia y sobrescritura de métodos. Permite usar objetos de subclases en lugar de objetos de la clase base.
-
Polimorfismo paramétrico (Parametric Polymorphism) — se realiza mediante tipos genéricos, cuando funciones o clases trabajan con cualquier tipo de datos.
-
Polimorfismo ad-hoc (Ad-hoc Polymorphism) — incluye sobrecarga de funciones y operadores, cuando una función tiene varias implementaciones con diferentes tipos de parámetros.
-
Polimorfismo en tiempo de ejecución (Runtime Polymorphism) — se logra mediante métodos virtuales y enlace dinámico, cuando la llamada a un método se determina en tiempo de ejecución.
Ejemplo de polimorfismo de subtipos en Swift (iOS):
class Animal {
func sound() {
print("Algún sonido")
}
}
class Dog: Animal {
override func sound() {
print("Ladrido")
}
}
class Cat: Animal {
override func sound() {
print("Maullido")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // La llamada al método depende del tipo real del objeto
}