Sobes.tech
Junior — Middle

Consegues listar os diferentes tipos de polimorfismo na programação orientada a objetos?

sobes.tech IA

Resposta da IA

Na programação orientada a objetos (POO), destacam-se vários tipos principais de polimorfismo:

  1. Polimorfismo de subtipos (Subtype Polymorphism) — o tipo mais comum, implementado através de herança e sobrescrita de métodos. Permite usar objetos de subclasses em vez de objetos da classe base.

  2. Polimorfismo paramétrico (Parametric Polymorphism) — realizado através de tipos genéricos, quando funções ou classes trabalham com qualquer tipo de dados.

  3. Polimorfismo ad-hoc (Ad-hoc Polymorphism) — inclui sobrecarga de funções e operadores, quando uma função tem várias implementações com diferentes tipos de parâmetros.

  4. Polimorfismo em tempo de execução (Runtime Polymorphism) — alcançado através de métodos virtuais e ligação dinâmica, quando a chamada de método é determinada em tempo de execução.

Exemplo de polimorfismo de subtipos em Swift (iOS):

class Animal {
    func sound() {
        print("Algum som")
    }
}

class Dog: Animal {
    override func sound() {
        print("Latido")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miau")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // A chamada do método depende do tipo real do objeto
}