Junior — Middle
Explique a diferença entre um método que é implementado com o mesmo nome e assinatura numa classe e a sua sobrecarga, e a substituição do método em classes herdadas.
sobes.tech IA
Resposta da IA
Sobrecarga de método (overloading) é quando numa mesma classe são criados vários métodos com o mesmo nome, mas com assinaturas diferentes (conjuntos diferentes de parâmetros). Isto permite chamar o método com argumentos diferentes, e o compilador escolhe a opção adequada.
Sobrescrita de método (overriding) ocorre numa classe herdada, quando um método com a mesma assinatura que na classe base é implementado novamente para modificar ou expandir o comportamento do método base.
Exemplo em Swift:
class Animal {
func sound() {
print("Algum som")
}
}
class Dog: Animal {
override func sound() { // sobrescrita
print("Latido")
}
func sound(volume: Int) { // sobrecarga
print("Latido ao volume \(volume)")
}
}
Aqui, sound() na classe Dog sobrescreve o método da classe base Animal, e sound(volume:) é uma sobrecarga do método com um conjunto diferente de parâmetros.