У меня есть защищенный метод в суперклассе.Переопределение защищенного метода
package com.pts.filter
public class a {
...
protected Filter callFilter(Object aInParam) {
return Filter.LowPass;
}
}
Я расширяю класс a.
package com.pts.filter.image
public class b extends a {
...
@Override
protected Filter callFilter(Object aInParam) {
...
return Filter.LowPass;
}
}
Я получаю ошибку компиляции, говоря «Метод CallFilter типа б необходимо переопределить или реализовать метод Supertype». Я расширяю класс a, поэтому я не понимаю, почему он не видит метод супертипа. Это потому, что метод, который я пытаюсь переопределить, защищен? Из моего понимания защищенный метод виден в подклассах.
Вы уверены, что вы все раскрываете? Это должно скомпилировать ... Если вы не переопределите _another_ класс с именем 'a', который не имеет этого метода – fge
Похоже, вы забыли некоторые операторы' import'. Оба класса находятся в разных пакетах. –
Как и в других комментариях/ответах, вы переопределяете другой класс 'a', чем вы думаете. Проверьте все свои классы 'a' и/или попробуйте переопределить некоторые другие методы и посмотреть, что произойдет. – RalphChapin