Sobes.tech
Junior — Middle

¿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:

  1. 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.

  2. Polimorfismo paramétrico (Parametric Polymorphism) — se realiza mediante tipos genéricos, cuando funciones o clases trabajan con cualquier tipo de datos.

  3. 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.

  4. 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
}