【发布时间】:2013-07-01 11:21:42
【问题描述】:
我在超类中有一个受保护的方法。
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 类,所以我不明白为什么它看不到超类型方法。是因为我试图覆盖的方法受到保护吗?据我了解,受保护的方法在子类中是可见的。
【问题讨论】:
-
您确定要显示所有内容吗?这应该可以编译...除非您覆盖 another 名为
a的类,它没有此方法 -
您似乎忘记了一些
import语句。这两个类都在不同的包中。 -
正如其他 cmets/answers 中所暗示的那样,您覆盖的
a与您认为的不同。查看您的所有课程a,和/或尝试覆盖其他一些方法,看看会发生什么。
标签: java inheritance protected overriding