我在超类中有一个受保护的方法。
package com.pts.filter
public class a {
...
protected Filter callFilter(Object aInParam) {
return Filter.LowPass;
}
}
我正在扩展班级。
package com.pts.filter.image
public class b extends a {
...
@Override
protected Filter callFilter(Object aInParam) {
...
return Filter.LowPass;
}
}
我收到编译错误,说“ b类型的callFilter必须覆盖或实现超类型方法”。 我正在扩展类a所以我不明白为什么它没有看到超类型方法。是因为我试图覆盖的方法受到保护吗?从我的理解,受保护的方法在子类中可见。
答案 0 :(得分:5)
我唯一的猜测是为什么它可能不起作用,是错误的进口。您可能在两个类中使用不同的“过滤器”类导入。否则,以您在代码中提到的方式覆盖受保护的方法是完全合法的。