Java 访问权限规律其实并不复杂,C/C++/PHP一眼就能看出来,Java 分两步即可搞定
第一步:毫不动摇认知 public protected private 的通用权限控制,coder 都知道吧,当然你要是纯 python 我就不说什么了
public 子类可继承 & 对象可访问
protected 子类可继承 & 对象不可访问
private 子类不可继承 & 对象不可访问
default 同包如同public & 异包如同 private
第二步:看 被调用类 与 调用类 是否在同一个 package 中,相同则 被调用类 的 default protected 属性或方法降级为 public,否则保持不变。
看出规律来了么,public 和 private 是永远不会改变的,但 default protected 会受到 包域 的影响,同包降级为 public,异包时 protected 就是大家平时所熟知的 protected ,而 default 则升级为 private
然后按照第一步里说的基本常识再去理解就好了