Quando usar @Override afinal?

3 respostas
MrDataFlex

Sendo que funciona com ou sem (apenas quando não coloco fica um Warning…)

?

3 Respostas

nbluis

Toda a vez que você sobrescrever um método da classe pai.

fpavao

Funciona com ou sem caso estiver sobrescrevendo corretamente, agora o uso do @Override garante que vc não vai sobrescrever algo que vc não herdou, pois o compilador vai chorar…

“Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.”

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

peczenyj
package br.sobreescrita;

class A {
	public void procrastinar(int minutos, String atividade ){ }
}

class B extends A{
//@Override
	public void procrastinar(String atividade, int minutos ){ }
}
public class Exemplo{
	public static void main(String [] xxx){
		B b = new B();
		b.procrastinar("implementar sistema X", 60);
		b.procrastinar(20, "criar massa dados");
	}
}

Se vc não usa @Override, vc faz uma coisa dessas: acredita que B está sobreescrevendo um método em A, porém apenas criou uma nova assinatura, mantendo o antigo método. Se vc usa, acontece isso:

The method procrastinar(String, int) of type B must override a superclass method	sobreescrita/br/sobreescrita

Ou seja, o compilador te avisa "magrão, ACORDA q tu não está sobreescrevendo método coisissima nenhuma, tu comeu mosca, ficou olhando aquela secretária boazuda passando pelo corredor e escrever a primeira coisa q veio na mente".

Criado 7 de janeiro de 2008
Ultima resposta 7 de jan. de 2008
Respostas 3
Participantes 4