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:

  1. 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.
  2. 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.
  3. 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.