【发布时间】:2015-11-27 11:45:49
【问题描述】:
当你重写方法时,你不能降低继承方法的可见性。根据下表,protected 比no modifier 更易访问:
但是当我尝试覆盖f()(参见子类)时,我得到了错误:
无法降低从 MyInterface 继承的方法的可见性。
MyInterface 中的方法没有访问修饰符,SubClass 中的方法是受保护的,因此更易于访问。我在这里错过了什么?
public interface MyInterface {
void f();
}
public abstract class MyClass {
protected abstract void f();
}
public class SubClass extends MyClass implements MyInterface{
protected void f() { }
}
【问题讨论】:
-
您不会覆盖接口方法。你实现它们。
-
@T.J.Crowder - jls jargon - 在类 C 中声明的实例方法 mC,覆盖 在超接口中声明的另一个方法 mI,如果 ...
-
@bayu.io:有趣,我从没听说过这样说。
标签: java overriding access-modifiers