O que é: Overriding
O que é Overriding?
O Overriding é um conceito de programação orientada a objetos que permite a um método em uma classe filha substituir a implementação de um método com o mesmo nome em uma classe pai. Isso significa que a classe filha pode fornecer uma implementação específica para um método que já existe na classe pai, alterando seu comportamento sem modificar a assinatura do método.
Como funciona o Overriding?
Quando uma classe filha herda um método de uma classe pai, ela pode optar por substituir a implementação desse método usando a palavra-chave “override”. Isso indica ao compilador que o método na classe filha está substituindo o método na classe pai e que a implementação na classe filha deve ser usada em vez da implementação na classe pai.
Exemplo de Overriding em Java:
Vamos ver um exemplo simples de como o Overriding funciona em Java. Suponha que tenhamos uma classe pai chamada Animal com um método chamado fazerSom(). Agora, vamos criar uma classe filha chamada Cachorro que herda de Animal e substitui o método fazerSom() para latir:
“`java
class Animal {
public void fazerSom() {
System.out.println(“Som genérico de animal”);
}
}
class Cachorro extends Animal {
@Override
public void fazerSom() {
System.out.println(“Au au!”);
}
}
“`
Por que usar Overriding?
O Overriding é útil quando queremos fornecer uma implementação específica de um método em uma classe filha, mantendo a mesma assinatura do método na classe pai. Isso nos permite reutilizar o código existente e também adicionar funcionalidades específicas à classe filha sem modificar a classe pai.
Diferença entre Overriding e Overloading:
É importante notar a diferença entre Overriding e Overloading. Enquanto o Overriding envolve a substituição de um método em uma classe filha, o Overloading envolve a criação de métodos com o mesmo nome, mas com diferentes parâmetros em uma mesma classe.
Regras para Overriding:
Existem algumas regras que devem ser seguidas ao usar o Overriding em Java:
- O método na classe filha deve ter o mesmo nome, tipo de retorno e lista de parâmetros que o método na classe pai.
- O modificador de acesso do método na classe filha não pode ser mais restritivo do que o modificador de acesso do método na classe pai.
- O método na classe filha não pode lançar exceções verificadas que não são lançadas pelo método na classe pai.
Conclusão:
O Overriding é uma técnica poderosa na programação orientada a objetos que nos permite substituir a implementação de um método em uma classe filha. Isso nos dá flexibilidade para personalizar o comportamento de nossas classes e adicionar funcionalidades específicas sem modificar a classe pai. Ao seguir as regras e boas práticas de Overriding, podemos escrever código mais limpo, reutilizável e eficiente.