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