0

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

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;
  }
}

我收到一个编译器错误,提示“ b 类型的方法 callFilter 必须覆盖或实现超类型方法”。我正在扩展 a 类,所以我不明白为什么它看不到超类型方法。是因为我试图覆盖的方法受到保护吗?据我了解,受保护的方法在子类中是可见的。

4

1 回答 1

5

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

于 2013-07-03T16:45:54.130 回答