スーパークラスに保護されたメソッドがあります。
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 を拡張しているので、スーパータイプ メソッドが表示されない理由がわかりません。オーバーライドしようとしているメソッドが保護されているためですか? 私の理解では、保護されたメソッドはサブクラスで表示されます。