Junior
Quando ocorre a sobrescrição de um método (overriding) na programação?
sobes.tech IA
Resposta da IA
A redefinição de método ocorre em herança, quando uma classe filha fornece sua própria implementação de um método que já está definido na classe pai. A assinatura do método (nome, tipo de retorno e quantidade/tipos de argumentos) deve coincidir com a do método na classe pai. Isso permite que o polimorfismo funcione: um objeto da classe filha, usado como um objeto da classe pai, chama sua implementação específica do método.
Exemplos de uso:
- Alterar a lógica do comportamento herdado.
- Fornecer uma implementação específica da subclasse para uma interface comum.
Pontos-chave:
- É necessária uma relação é-um (herança).
- A assinatura do método deve coincidir.
- O modificador de acesso pode ser o mesmo ou menos restritivo que o do método pai.
- Não é possível sobrescrever métodos
finaloustatic(na maioria das linguagens).
// Exemplo em Java
class Animal {
public void makeSound() {
System.out.println("Som genérico de animal");
}
}
class Dog extends Animal {
@Override // Anotação indicando sobrescrita
public void makeSound() {
System.out.println("Au au!");
}
}
// Uso
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Saída: Som genérico de animal
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Saída: Au au! (chama o método sobrescrito)
# Exemplo em Python
class Animal:
def make_sound(self):
print("Som genérico de animal")
class Dog(Animal):
def make_sound(self): # Sobrescrita do método
print("Au au!")
# Uso
# animal = Animal()
# animal.make_sound() # Saída: Som genérico de animal
#
# dog = Dog()
# dog.make_sound() # Saída: Au au!