Junior
Quando um método é considerado sobrescrito (overriding)?
sobes.tech IA
Resposta da IA
O método é considerado sobreposto (overriding) na programação orientada a objetos quando:
- É definido numa subclasse com o mesmo nome, tipo de retorno e lista de parâmetros (assinatura) que o método na superclasse.
- O método da superclasse não é
private. - O método na subclasse não tem um modificador de acesso mais restritivo do que o método na superclasse.
- Em caso de exceções, o método sobreposto não pode declarar exceções verificadas ([checked exceptions]) que sejam mais gerais do que as declaradas no método original.
Ao chamar o método sobreposto num objeto da subclasse, é a versão do método da subclasse que é executada. Isto é um exemplo de polimorfismo em tempo de execução.
Exemplo em Java:
// java
class Animal {
public void makeSound() {
System.out.println("Som genérico de animal");
}
}
class Dog extends Animal {
@Override // A anotação @Override confirma que o método foi sobreposto
public void makeSound() {
System.out.println("Au au");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miau");
}
}