Java中接口定义的private方法

复习考试过程中,发现了java的接口中可以存在private static方法。

Java中的接口由两个作用:
1.定义函数声明,供继承的子类实现;
2.定义通用的静态方法原型,供外部调用。

我们知道,只有public修饰的非static方法可以被非同一个package内的类重写,
所以接口中所有非static方法都必须被public修饰。

而static方法只能被隐式继承,不能被重写,所以可以不用public修饰。
经过实验发现,java的接口中可以存在private static方法。

 这个方法不能被外部调用,但可以作为接口内部的工具方法使用。
例如接口内其他public static 方法可以调用该private static方法来作为工具函数,
采用private约束可以保证这个工具方法不暴露给外界。

扩展:可以使用protected修饰接口内的静态方法吗?

不可以。

上文提到,private修饰符实现了接口内工具函数的功能,而protected修饰的静态方法:
1.作为工具方法可以让同一个package的所有类使用,存在表示泄露;
2.作为供外界调用的方法,和非静态方法的protected关键字一样,仅在package内部可调用。
所以protected关键字在接口中不能修饰静态方法。

题外话
最后,java接口中,和抽象类中的抽象方法,所有缺省的作用域修饰符都是public,
实现类和抽象类非抽象方法缺省的修饰符都是protected。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值