public(公共的)
权限: 完全公开
protected(受保护的)
权限: 对子类和同包中的其他类公开
default(默认的,可不写)
权限: 对同包中的其他类公开
private(私有的)
权限: 本类公开
public | protected | default | private | |
本类 | √ | √ | √ | √ |
同包 | √ | √ | √ | |
子类 | √ | √ | √(同包) ×(异包) | |
异包 | √ |
除此之外,还有一些需要注意的点:
(1) 静态成员、静态方法的权限修饰词的用法和普通成员、方法一样。
(2) 类虽然也可以被修饰词修饰,但是不可以用private、protected两个权限修辞词。
(3) 有些书中将包访问权限又叫做默认访问权限。个人不建议这么去记,因为这很容易与Java Se8中新特性——default关键字混淆。这个关键字只能用于Interface,作用是允许程序员在Interface中定义接口的默认具体实现(以往的JDK版本是不允许这样的,你只能在接口中声明方法)。