На самом деле поведение кажется правильным для меня: когда вы переопределяете метод, это символ, который вы реализуете для него новый код.
Чтобы избежать ошибок, если вы используете устаревший супер метод, затмение поднимет предупреждение:
class Sub extends Super{
@Override
public void doNotUseThisMethod() { // <---------------*
super.doNotUseThisMethod(); // deprecated! <----*
}
}
Но если переопределить устаревший метод функциональность, без использования устаревшего super.method()
тогда нового метода не устарел по определению, потому что вы внедрили его без использования старого.
public class Sub extends Super{
@Override
public void doNotUseThisMethod() {
// new logic + not using super.method() = not a deprecated method!!
}
}
Если один, который отменяет устаревшее один, не следует использовать, должны быть также аннотированный, как нежелателен следующим образом:
public class Super {
@Deprecated
public void doNotUseThisMethod() {
// do magic
}
}
public class Sub extends Super{
@Override
@Deprecated // <---------------------------*
public void doNotUseThisMethod() { // |
// this is deprecated also!!!! // <-----*
}
}
Sidenote: Другой вопрос, будет ли имя ваш метод может вызвать путаницу.
Но не @Deprecate также означать «мы собираемся удалить этот метод в ближайшее время», который нарушит код подкласс, благодаря аннотации @Override? (Именно поэтому мне нужно предупреждение -.., Чтобы другие разработчики переопределения метода я собираюсь удалить Но, как это они не будут даже получить предупреждение) - Штеффи С.
На самом деле может быть, разработчики удаляют этот метод, но усталость - это больше не использование кода в некотором методе, потому что он старый, а затем разработчики делают NEW, с новым именем и оставляют устаревшим как устаревшее.
Но ... Что произойдет в случае удаления этого метода?
Прежде всего, это означало бы изменение версии Java (или фреймворка или utils), это должно быть сделано тщательно, устаревшие методы не будут вашей единственной проблемой.
В случае, если вы выберете основную версию и некоторые устаревшие методы будут удалены, у вас не будет большой проблемы ... Почему? В вашей среде IDE будут четко отмечены эти методы с ошибкой, и вам просто нужно удалить аннотацию @Override
, используя вашу логику в своем методе overriden.
Извините за недоразумение в комментариях. Я нашел правду и отправил вам новый ответ. –