Sobes.tech
Junior

O que é polimorfismo na programação?

sobes.tech IA

Resposta da IA

O polimorfismo é a capacidade de objetos de diferentes classes responderem de forma diferente às mesmas mensagens (chamadas de métodos).

Simplificando, o mesmo método pode comportar-se de forma diferente dependendo do objeto que o invoca. Isto é alcançado através de herança e sobrescrita de métodos, bem como através do uso de interfaces.

Exemplo em Swift:

protocol Animal {
    func makeSound()
}

class Dog: Animal {
    func makeSound() {
        print("Au")
    }
}

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

func playSound(animal: Animal) {
    animal.makeSound()
}

let dog = Dog()
let cat = Cat()

playSound(animal: dog) // Vai imprimir: Au
playSound(animal: cat) // Vai imprimir: Miau

Aqui, a função playSound aceita um objeto do tipo Animal, mas dependendo da classe concreta (Dog ou Cat), a implementação correspondente do método makeSound é chamada.