在不同类中使用 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)其它相关文章!