Java 函数的访问权限修饰符之在不同类中使用的规则

2024年 4月 25日 81.6k 0

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

Java 函数的访问权限修饰符之在不同类中使用的规则

Java 函数的访问权限修饰符之在不同类中使用的规则

Java 中的访问权限修饰符用于控制类、方法和字段的可见性范围。在不同类中使用函数时,需要遵守以下规则:

1. 默认访问权限(无修饰符)

  • 仅在同一包内的类中可见

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 的子类。

注意事项

  • 内部类可以访问其外部类的所有成员,无论访问权限修饰符如何。
  • 编译器会检查访问权限,如果违反规则,则会产生编译错误。

以上就是Java 函数的访问权限修饰符之在不同类中使用的规则的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论