@Override вызывает проблемы с иерархией классов, включая интерфейс, абстрактный класс и конкретный класс - PullRequest
1 голос
/ 01 июня 2010

Мои занятия следующие

public interface A {
    public void doSomething();
}
public abstract class B implements A {
    public void doOneMoreThing() {
        // Do one more thing
    }
}
public class C extends B {
    @Override                <---- Causes error
    public void doSomething() {
        // Do something
    }
}

Может кто-нибудь сказать мне, почему эта аннотация @Override вызывает ошибку?

Спасибо Найн

Ответы [ 2 ]

5 голосов
/ 01 июня 2010

Убедитесь, что вы используете JDK 1.6 и что ваши параметры -source и -target (если определены) установлены на 1.6. Семантика @Override изменена в Java 6. В Java 5 @Override не разрешалось переопределять методы интерфейса (только методы суперкласса), но это разрешено в Java 6 (и последних версиях JDK 5, начиная с u21 и далее)

См. Почему javac не работает в аннотации @Override

2 голосов
/ 01 июня 2010

вы должны использовать

@ Override

Вы написали @Overrides, и тогда он больше не работает;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...