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:
-
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.
-
Polimorfismo paramétrico (Parametric Polymorphism) — realizado através de tipos genéricos, quando funções ou classes trabalham com qualquer tipo de dados.
-
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.
-
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
}