1interface DeclareStuff {
2 public static final int EASY = 3;
3 void doStuff(int t); }
4 public class TestDeclare implements DeclareStuff {
5 public static void main(String [] args) {
6 int x = 5;
7 new TestDeclare().doStuff(++x);
8 }
9 void doStuff(int s) {
10 s += EASY + ++s;
System.out.println("s " + s);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么它给我一个编译错误:无法从第7行的DeclareStuff中减少继承方法的可见性,即void doStuffe(int s).
ska*_*man 12
接口方法是隐含的public.接口方法的实现也必须始终如一public.
编译器错误告诉您,您不能使方法的实现比其超类型"更少"可见.您的类的方法具有默认可见性,这比public界面的方法"更少"可见.
因此,让TestDeclare.doStuff一个public方法,它会工作.