2010-10-06 3 views
3

Должен ли я помещать тег @Override, если я реализую метод интерфейса? Я знаю, что тег @Override должен быть там, когда вы переопределяете метод суперкласса (а не интерфейс). Но как насчет реализации метода интерфейса?Должен ли я использовать тег @Override при реализации интерфейса?

+0

Возможный дубликат - http://stackoverflow.com/questions/212614/should-a-method-that-implements-an-interface-method-be-annotated-with-override/212624#212624 – jjnguy

ответ

7

Ну, yes:

Вы должны использовать @Override когда возможно. Это предотвращает простые ошибки от изготовления. Пример:

@Override 
public boolean equals(MyObject mObj){ 
    // code ... 
} 

Это не компилируется, потому что не правильно переопределить равных.

То же самое будет идти на методы, которые реализуют интерфейс (1.6 и выше только) или переопределить метод супер класса.

+0

Но как приходят в IDE NetBeans (а теперь затмение Helios) жалуется, когда я делаю что-то вроде: новый компараторов () { @Override общественности Int сравнить (OBJ LHS, Obj РИТ) { ..... } } IDE предлагает удалить тег @Override – dolaameng

+0

@dolaa, какую версию java вы используете? 1.5 не позволяет реализовать аннотирующий интерфейс таким образом. – jjnguy

+1

Но вы должны обязательно это сделать, если используете 1.6 – jjnguy

Смежные вопросы