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éto…


This content originally appeared on DEV Community and was authored by Mulher Programadora

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
}

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.


This content originally appeared on DEV Community and was authored by Mulher Programadora


Print Share Comment Cite Upload Translate Updates
APA

Mulher Programadora | Sciencx (2024-07-11T18:15:31+00:00) Item 40: Use a anotação Override com frequência. Retrieved from https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/

MLA
" » Item 40: Use a anotação Override com frequência." Mulher Programadora | Sciencx - Thursday July 11, 2024, https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/
HARVARD
Mulher Programadora | Sciencx Thursday July 11, 2024 » Item 40: Use a anotação Override com frequência., viewed ,<https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/>
VANCOUVER
Mulher Programadora | Sciencx - » Item 40: Use a anotação Override com frequência. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/
CHICAGO
" » Item 40: Use a anotação Override com frequência." Mulher Programadora | Sciencx - Accessed . https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/
IEEE
" » Item 40: Use a anotação Override com frequência." Mulher Programadora | Sciencx [Online]. Available: https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/. [Accessed: ]
rf:citation
» Item 40: Use a anotação Override com frequência | Mulher Programadora | Sciencx | https://www.scien.cx/2024/07/11/item-40-use-a-anotacao-override-com-frequencia/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.