Junior — Middle
Podes dar um exemplo que ilustre os diferentes tipos de polimorfismo na programação orientada a objetos?
sobes.tech IA
Resposta da IA
Na programação orientada a objetos, o polimorfismo permite que objetos de diferentes classes tratem chamadas de métodos com o mesmo nome de forma diferente.
1. Polimorfismo em tempo de compilação (polimorfismo estático):
- Sobrecarga de métodos: vários métodos com um nome, mas diferentes parâmetros.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Polimorfismo em tempo de execução (polimorfismo dinâmico):
- Sobrescrita de métodos em subclasses.
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() // Vai imprimir "Latido" e "Miau"
}
Assim, o polimorfismo permite usar uma interface única para trabalhar com diferentes tipos de objetos.