1 public interface Word { boolean isSpelled(String w); }
2
3 abstract class Verb3 implements Word {
4 boolean isSpelled(String w) { return true;}
5 }
Run Code Online (Sandbox Code Playgroud)
这是来自OCJP模拟测试的问题.上面的代码将返回第4行的错误,答案说Verb3类无法尝试为isSpelled()方法分配较弱的访问权限.
谁知道这意味着什么?
另外,在实现接口时,访问权限是否应该取决于接口中声明的方法?例如,
1 public interface Word { public boolean isSpelled(String w); }
Run Code Online (Sandbox Code Playgroud)
使用public或default(在这种情况下无访问修饰符)将允许您访问或覆盖该方法.如果我错了,请纠正我.谢谢.
public默认情况下,在接口中声明方法时.但是当你在任何类中定义它时,如果你没有指定它的访问修饰符default.在实现接口时,您无法为重写方法分配较弱的访问权限.实现接口方法时,必须声明它public.