Sobes.tech
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.