子類別中重寫方法的存取權限修飾符必須相同或更寬泛:子類別方法的存取權限可以比父類別方法寬泛(例如,由 protected 改為 public)。子類別方法的存取權限不能比父類別方法更受限(例如,由 public 改為 protected)。
Java 函數的存取權修飾符之與方法重寫的影響
存取權修飾符控制著Java 方法的可訪問性。它們有四種類型:
當重寫父類別中的方法時,子類別中的重寫方法必須具有相同的或更寬的存取權限修飾符。這是因為重寫的方法是在父類別方法的基礎上進行的,因此它不能比父類別方法更受限。
實戰案例
下面是一個父類:
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()
方法也必須是protected
或public
。將其設定為 public
符合方法重寫的要求,因為它具有比父類別方法更寬的存取權限。
運行這兩個類別將列印以下輸出:
Child class show()
這是因為Child
類別中的重寫方法被調用,因為它具有更寬的存取權限(public
)。
以上是Java 函數的存取權限修飾符之與方法重寫的影響的詳細內容。更多資訊請關注PHP中文網其他相關文章!