首頁  >  文章  >  Java  >  Java 函數的存取權限修飾符之與方法重寫的影響

Java 函數的存取權限修飾符之與方法重寫的影響

王林
王林原創
2024-04-26 09:27:01838瀏覽

子類別中重寫方法的存取權限修飾符必須相同或更寬泛:子類別方法的存取權限可以比父類別方法寬泛(例如,由 protected 改為 public)。子類別方法的存取權限不能比父類別方法更受限(例如,由 public 改為 protected)。

Java 函数的访问权限修饰符之与方法重写的影响

Java 函數的存取權修飾符之與方法重寫的影響

存取權修飾符控制著Java 方法的可訪問性。它們有四種類型:

  • public:在任何地方都可以存取
  • protected:在同一套件和子類別中可以存取
  • default(沒有明確的修飾符):在同一套件中可以存取
  • private:只能在類別內部存取

當重寫父類別中的方法時,子類別中的重寫方法必須具有相同的或更寬的存取權限修飾符。這是因為重寫的方法是在父類別方法的基礎上進行的,因此它不能比父類別方法更受限。

實戰案例

下面是一個父類:

public class Parent {
    protected void show() {
        System.out.println("Parent class show()");
    }
}

現在,考慮下面的子類,它重寫了父類中的show() 方法。注意show() 方法的存取權限修飾符是從protected 變更為public

public class Child extends Parent {
    @Override
    public void show() {
        System.out.println("Child class show()");
    }
}

由於父類別的show () 方法是protected 的,子類別的show() 方法也必須是protectedpublic。將其設定為 public 符合方法重寫的要求,因為它具有比父類別方法更寬的存取權限。

運行這兩個類別將列印以下輸出:

Child class show()

這是因為Child 類別中的重寫方法被調用,因為它具有更寬的存取權限(public)。

以上是Java 函數的存取權限修飾符之與方法重寫的影響的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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