访问修饰符定义了类、属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private、default、protected 和 public。table
- public,公共修饰符,被其修饰的类、属性或方法在项目中任意类中访问。
- protected,保护修饰符,被其修饰的类、属性或方法在当前类所属包或当前类的子类中可访问。
- default,默认修饰符,没有明确声明修饰符时默认采用此修饰符,被其修饰的类、属性或方法只能被当前类所属包中的类访问。
- private,私有修饰符,被其修饰的类、属性或方法仅在当前类中可访问。
private |
√ |
× |
× |
× |
default |
√ |
√ |
× |
× |
protected |
√ |
√ |
√(部分) |
× |
public |
√ |
√ |
√ |
√ |
如下是访问修饰符相关知识中须要特别注意的内容:class
- default 修饰的类、属性或方法若是是在不一样包下,即便是子类也没法访问。
- protected 修饰的类、属性或方法能够在不一样包子类中访问,可是没法经过该子类的实例进行访问。例如 A 是 B 的父类,二者分属不一样包下,A 中的方法 a() 使用 protected 进行修饰,此时咱们能够在 B 的方法 b() 中调用 super.a(),可是没法经过实例化进行调用, new B().a() 则没法调用。