interface中(default)方法的访问权限

public interface A{
    void a();
}
public class B implements A{
     protected void a(){
    }
}
这样子会报错: cannot reduce visibility of the inherit method from A  ,不能降低继承方法的可见性,有什么合理的解释吗,A中的方法到底是public 还是default的访问权限?
全部评论
接口中方法不都是默认public吗。。
点赞 回复 分享
发布于 2016-04-12 11:07
比较了一下字节码,如果是改变interface的修饰(public or default),字节码文件变了,如果是改变方法的修饰符,却没有变,看来正如上面仁兄说的接口方法默认也是public的,而接口默认和显式public是不同的
点赞 回复 分享
发布于 2016-04-12 11:33
java接口方法默认都是public 即使不加indentifier
点赞 回复 分享
发布于 2016-04-13 01:23

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务