【问题标题】:Java: understanding access privileges using interfaceJava:使用接口了解访问权限
【发布时间】:2013-11-07 05:41:00
【问题描述】:
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(在这种情况下没有访问修饰符)将允许您访问或覆盖该方法。 如果我错了,请纠正我。谢谢。

【问题讨论】:

    标签: java scjp


    【解决方案1】:

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

    【讨论】:

    • 啊,所以关键是实现接口方法的时候,必须是public的。非常感谢。
    • 是的@tipsywacky..谢谢。如果您满意,请不要忘记打勾...谢谢
    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多