Sobes.tech
Junior — Middle

Como distinguir uma sobrecarga de método de uma sobrescrição na programação orientada a objetos?

sobes.tech IA

Resposta da IA

A sobrecarga de método (overloading) e a sobrescrição de método (overriding) são conceitos diferentes em POO:

  • Sobrecarga de método: é a existência na mesma classe de vários métodos com o mesmo nome, mas diferentes parâmetros (tipo, quantidade). Isso permite chamar o método com argumentos diferentes.

  • Sobrescrição de método: é quando uma subclasse fornece sua própria implementação de um método que já está definido na classe base com a mesma assinatura (nome e parâmetros). Isso permite alterar o comportamento do método para a subclasse.

Exemplo em Java:

class Animal {
    void sound() {
        System.out.println("Algum som");
    }

    void sound(String mood) { // sobrecarga
        System.out.println("Som quando " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // sobrescrita
        System.out.println("Latido");
    }
}

Aqui, sound() na classe Dog sobrescreve o método da classe base, e sound(String mood) é uma sobrecarga do método na mesma classe Animal.