Junior — Middle
Explique la diferencia entre un método que se implementa con el mismo nombre y firma en una clase y su sobrecarga, y la sobrescritura del método en clases heredadas.
sobes.tech AI
Respuesta de la IA
La sobrecarga de métodos (overloading) es cuando en una misma clase se crean varios métodos con el mismo nombre, pero con diferentes firmas (con diferentes conjuntos de parámetros). Esto permite llamar al método con diferentes argumentos, y el compilador selecciona la opción adecuada.
La sobrescritura de métodos (overriding) ocurre en una clase heredada, cuando un método con la misma firma que en la clase base se implementa nuevamente para modificar o ampliar el comportamiento del método base.
Ejemplo en Swift:
class Animal {
func sound() {
print("Algún sonido")
}
}
class Dog: Animal {
override func sound() { // sobrescritura
print("Ladrido")
}
func sound(volume: Int) { // sobrecarga
print("Ladrido a volumen \(volume)")
}
}
Aquí, sound() en la clase Dog sobrescribe el método de la clase base Animal, y sound(volume:) es una sobrecarga del método con un conjunto diferente de parámetros.