博客探讨了接口中方法访问权限不包含protected的原因,指出类不能直接继承接口,因此protected的意义在接口上下文中受限。文章通过访问权限表对比,强调default和private已能满足接口实现需求,从而质疑protected的必要性。
摘要由CSDN通过智能技术生成
接口中的方法访问权限可以是
public、default、private
,那为何不可以是
protected
呢?
protected
级别不是在四者中间吗?
首先我们先回顾一下下面这张熟悉的访问权限表:
那么我们能够发现
protected
是可以让不同包的子类去进行调用的,那么我们想想一个类可能是一个接口的子类吗?显然不可能,
类只能实现接口,但那不叫继承接口
。虽然接口也是有子接口的,但那又如何呢,类还是无法继承接口啊。而如果
default
和
private
就能够让类实现接口里的方法,那么
protected
的存在有何意义呢?
在jdk1.8之前,
接口
中
的
方法
默认都是abstract的,变量都是默认 publicstaticfinal,也就是
接口
中
只存在常量,
但是在jdk1.8
中
,对
接口
方法
做出调整,
1、default
方法
如果在多个实现类实现该
接口
时,如果在
接口
中
增加一个
方法
,就要去修改其实现类,如果实现类过多i,操作太过麻烦,所以在
接口
中
新增default
方法
,该
方法
可以在
接口
中
自己实现,实现类
中
调用
对于
java
程序员来说,
java
的
访问权限
修饰词public、
protected
、default、private的区别和使用肯定都不是问题,这里也不再啰嗦了,反正度娘一搜就一大把。最近在整理
java
core的培训资料时,想到了几个关于权限修饰词的问题:
为什么类和
接口
(不考虑内部类和
接口
)不能使用private和
protected
修饰词,只能是public和default?
为什么
接口
的...