DEV Community

Java Efetivo (livro)
Java Efetivo (livro)

Posted on

1

Item 40: Use a anotação Override com frequência

Importância da Anotação @override*

  • A anotação @override é uma das mais importantes para programadores Java.
  • Usada nas declarações de método para indicar que o método sobrescreve uma declaração em um supertipo.
  • Protege contra bugs ao garantir que métodos sejam corretamente sobrescritos.

Problema com Sobrecarga vs. Sobrescrita

  • Exemplo de código com problema Erro: O método equals está sobrecarregado em vez de sobrescrito. Para sobrescrever, o parâmetro deve ser do tipo Object. Ver Bigram.java

Correção com @override

  • Código corrigido: ver Bigram.java

Image description

Resultado: O compilador alertará se houver erros na sobrescrita, ajudando a corrigir problemas de sobrecarga acidental.

Uso em Classes e Interfaces
Use @override para métodos que sobrescrevem métodos em superclasses e superinterfaces.

Exemplo em interface:

public interface Set<E> extends Collection<E> {
    @Override boolean add(E e); // Sobrescreve o método add de Collection
}
Enter fullscreen mode Exit fullscreen mode

Vantagens em IDEs

  • IDEs podem gerar avisos se um método sobrescrevendo outro não estiver anotado com @override.
  • Ajuda a evitar sobrescritas involuntárias e sobrecargas acidentais.

Exceções à Regra

  • Em classes concretas que sobrescrevem métodos abstratos de superclasses, o compilador emitirá um erro se não houver sobrescrita correta, então a anotação não é estritamente necessária, mas ainda pode ser útil.

Resumo

  • Sempre use a anotação @override para indicar métodos que sobrescrevem declarações em supertipos.
  • Ajuda a evitar erros comuns e facilita a manutenção do código.
  • Mesmo em casos onde não é estritamente necessário, como métodos abstratos em classes concretas, o uso de @override é uma boa prática.

Exemplo Final
Classe concreta com métodos anotados:
ver ConcreteClass.java

Image description

Interface com métodos anotados:

Image description

Essa abordagem de usar @override frequentemente protege contra bugs, facilita a manutenção e melhora a clareza do código.

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay