覆盖受保护的方法

时间:2013-07-03 16:39:42

标签: java inheritance override protected method-overriding

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

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所以我不明白为什么它没有看到超类型方法。是因为我试图覆盖的方法受到保护吗?从我的理解,受保护的方法在子类中可见。

1 个答案:

答案 0 :(得分:5)

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