在不同类中使用 java 函数时,遵循以下访问权限规则:默认访问权限仅限于同一包内的类。包可见性与默认访问权限相同,但适用于同一模块中的所有类。受保护的访问权限仅限于子类和同一包中的类。公共访问权限在所有类中可见。

Java 函数的访问权限修饰符之在不同类中使用的规则
Java 中的访问权限修饰符用于控制类、方法和字段的可见性范围。在不同类中使用函数时,需要遵守以下规则:
1. 默认访问权限(无修饰符)
立即学习“Java免费学习笔记(深入)”;
- 仅在同一包内的类中可见
2. 包可见性(default)
- 与默认访问权限相同,但适用于同一模块中的所有类
3. protected 访问权限
- 仅在该类的子类和同一包中的类中可见
4. public 访问权限
- 在所有类中可见
实战案例
考虑以下代码:
// MySuperClass.java
public class MySuperClass {
protected void protectedMethod() {
// ...
}
public void publicMethod() {
// ...
}
}// MySubClass.java
public class MySubClass extends MySuperClass {
// 可访问父类的 protected 和 public 方法
void accessProtected() {
protectedMethod();
}
void accessPublic() {
publicMethod();
}
}// MyOtherClass.java
public class MyOtherClass {
// 无法访问父类的 protected 或 public 方法
void accessProtected() {
// 编译错误: protectedMethod() 具有 protected 访问权限,在此包外不可访问
}
void accessPublic() {
// 编译错误: publicMethod() 具有 public 访问权限,但在不同的模块中不可访问
}
}在这个示例中,MyOtherClass 无法访问 MySuperClass 中的 protectedMethod() 和 publicMethod(),因为它们不是在同一包中或不是 MySuperClass 的子类。
注意事项
- 内部类可以访问其外部类的所有成员,无论访问权限修饰符如何。
- 编译器会检查访问权限,如果违反规则,则会产生编译错误。











