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
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:
@Override boolean add(E e); // Sobrescreve o método add de Collection
}
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
Interface com métodos anotados:
Essa abordagem de usar @override frequentemente protege contra bugs, facilita a manutenção e melhora a clareza do código.