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.