Java 访问修饰符详解

访问修饰符定义了类、属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private、default、protected 和 public。

  • public,公共修饰符,被其修饰的类、属性或方法在项目中任意类中访问。
  • protected,保护修饰符,被其修饰的类、属性或方法在当前类所属包或当前类的子类中可访问。
  • default,默认修饰符,没有明确声明修饰符时默认采用此修饰符,被其修饰的类、属性或方法只能被当前类所属包中的类访问。
  • private,私有修饰符,被其修饰的类、属性或方法仅在当前类中可访问。
修饰符 本类中 同一个包下 不同包子类 不同包非子类
private × × ×
default × ×
protected √(部分) ×
public

以下是访问修饰符相关知识中需要特别注意的内容:

  • default 修饰的类、属性或方法如果是在不同包下,即使是子类也无法访问。
  • protected 修饰的类、属性或方法可以在不同包子类中访问,但是无法通过该子类的实例进行访问。例如 A 是 B 的父类,两者分属不同包下,A 中的方法 a() 使用 protected 进行修饰,此时我们可以在 B 的方法 b() 中调用 super.a(),但是无法通过实例化进行调用, new B().a() 则无法调用。
原文地址:https://www.cnblogs.com/aotian/p/9445757.html