1
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(在这种情况下没有访问修饰符)将允许您访问或覆盖该方法。如果我错了,请纠正我。谢谢。

4

1 回答 1

5

public默认情况下,在接口中声明方法时。但是当你在任何类中定义它时,如果你没有指定访问修饰符它的default. 在实现接口时,您不能为被覆盖的方法分配较弱的访问权限。当你实现一个接口方法时,它必须被声明public

于 2013-11-07T05:44:25.863 回答