覆盖受保护的方法

as3*_*unt 0 java inheritance overriding protected

我在超类中有一个受保护的方法.

package com.pts.filter
public class a {
  ...

  protected Filter callFilter(Object aInParam) {
     return Filter.LowPass;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在扩展课程.

package com.pts.filter.image    
public class b extends a {
  ...
  @Override
  protected Filter callFilter(Object aInParam) {
     ...
     return Filter.LowPass;
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误,说" 类型b的方法callFilter必须覆盖或实现超类型方法 ".我正在扩展类a所以我不明白为什么它没有看到超类型方法.是因为我试图覆盖的方法受到保护吗?从我的理解,受保护的方法在子类中可见.

Jun*_*san 5

我唯一猜到它为什么不起作用,是错误的进口.您可能在两个类中使用不同的"过滤器"类导入.否则,以您在代码中提到的方式覆盖受保护的方法是完全合法的.