Qual a vantagem em usar @Override?

Olá pessoal!

A partir do java 1.5, essa annotation foi incorporada à linguagem, para ser usada em métodos que sobrescrevem métodos de uma de suas superclasses.

Agora, o que muda de um método que usa essa annotation para um método que não a usa? Isso é apenas um padrão?

Assumindo, óbvio, que ambos sejam métodos que sobrescrevem um método da sua superclasse…

Acho que não muda nada no método, o que eu imagino é que sirva para documentação e facilidade na hora de dar manutenção no código, mas realmente estou chutando essa resposta.

É só vc ler a documentação dele que esta explicando para que ele serve

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Override.html

:wink:

Pois é…

Mas a minha dúvida:

Não é respondida na documentação… por isso usei o fórum.

Mas luBS, fico muito grato pela atenção… :wink:

Claro que é respondida, um método sobrescrito que não tem a anotação não vai dar erro de compilação caso ele não esteja sobrescrevendo nada.

Se vc tem uma classe que estende outra e sobrescreve um método, caso coloque a anotação e o método da classe pai deixe de existir, vai dar erro de compilação na filha, caso você não tenha anotado, então não vai. Essa é a diferença e para isso que serve o @Override, é meramente indicativo e serve para o desenvolvimento apenas.

bele? :wink:

Agora minha dúvida está respondida luBS!

Muito obrigado

@Override public String tostring() { // ... }
Erro de compilação.

Tira a anotação e imagine quanto tempo você vai perder para descobrir que o s está minúsculo…
(Claro que esse exemplo é tosco, mas imaginando um método de assinatura mais complicada, cheio de parâmetros, não é difícil errar).

Realmente Schuenemann.

Claro que a grande maioria das IDEs de hoje em dia, eliminam grande parte dos casos que essa annotation cobre. Mas a linguagem também nao pode ser pensada com base nos recursos de IDEs.

Outro ponto, talvez a documentação devesse ser um pouco mais detalhada, ao menos nesse caso. Ela me faz lembrar a do hibernate, que não visa muito detalhes. Mas a do java, no geral, é muito boa (questão de opinião).

Abraço!

Concordo a respeito da documentação. O javadoc é muito bem detalhado e oferece ao desenvolver uma forma muito simples de obter diversas informações sobre as mais variadas classes/pacotes.

Agora, é verdade também que há diversos frameworks que não possuem uma documentação detalhada. Mas acredite, a documentação do hibernate é ótima se comparada a outros frameworks que existem por aí.

Abraços.

Muito boa as explicações.

Estava vendo um código que me passaram, que anotaram um método que implementa uma interface com @Override. O eclipse reclamou e de fato fiquei na dúvida, como pode ser possível sobrescrever um método que não existe ainda, ou seja, estou implementando esse método, como posso sobrescrever, Estranho não, ou é possível e eu que estou por fora ? rs

Grato à todos.