public>protected>default>private
时间: 2025-06-28 18:12:05 浏览: 16
### Java 访问修饰符的作用域和优先级
#### 私有访问修饰符 `private`
`private` 是 Java 中对访问权限限制最窄的修饰符,通常被称为“私有的”。被此修饰符修饰的属性以及方法仅能被该类的对象访问,其子类无法访问,也不允许跨包访问[^1]。
```java
class Example {
private int secretNumber;
private void confidentialMethod() {
// 方法体
}
}
```
#### 默认访问修饰符 `default`
当未指定任何访问修饰符时,默认情况下成员具有包级私有(package-private)访问级别。这意味着这些成员只能在同一包内的其他类中可见并可访问[^3]。
```java
// 文件位于com.example包下
package com.example;
class DefaultAccessClass {
String packageNameVisibleField;
void packageLevelMethod() {
// 方法体
}
}
```
#### 受保护的访问修饰符 `protected`
`protected` 成员不仅可以在同一包内访问,在不同包的情况下也可以通过继承关系来访问受保护成员。因此,它比默认级别的访问更为宽松一些,但仍受到一定限制,不允许完全公开给所有外部实体使用[^2]。
```java
package another.package.name;
import com.example.DefaultAccessClass;
public class ChildOfClass extends DefaultAccessClass {
@Override
protected void packageLevelMethod() {
super.packageLevelMethod();
// 子类可以重写父类的方法,并调用之
}
}
```
#### 公共访问修饰符 `public`
`public` 提供了最为宽泛的访问控制方式,声明为公共的类、接口、字段或方法能够不受限于所在位置而被任意地方所引用和操作。这是四种访问限定中最开放的一种形式。
```java
public final class PublicAccessibleExample {
public static final String CONSTANT = "This is accessible everywhere.";
public void publiclyAvailableMethod() {
// 此处定义对外界可用的功能逻辑
}
}
```
综上所述,按照由严格到宽松排列顺序依次为:
- **Private**: 类内部独享;
- **Default (Package-private)**: 同一包下的类之间共享;
- **Protected**: 继承链上的子类及其同包子类间互通;
- **Public**: 完全对外开放无条件访问。
阅读全文
相关推荐



















