首頁 >Java >java教程 >Java 函數的存取權限修飾符之在不同類別中使用的規則

Java 函數的存取權限修飾符之在不同類別中使用的規則

PHPz
PHPz原創
2024-04-25 13:54:02834瀏覽

在不同類別中使用 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 函數的存取權限修飾符之在不同類別中使用的規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn