在 Java 中,私有方法(private method)不能被重載(overloaded)或重寫(overridden)。
重載(Overloading):重載是在同一個類中定義多個具有相同名稱但參數列表不同的方法。由于私有方法只能在其所在的類中被訪問,因此它們不能被子類重載。
重寫(Overriding):重寫是在子類中重新定義父類中的方法,以實現不同的功能。由于私有方法不能被子類訪問,因此它們不能被子類重寫。
以下是一個示例,說明私有方法不能被重載或重寫:
```java
class Parent {
private void foo() {
System.out.println("Parent's foo");
}
}
class Child extends Parent {
// 嘗試重寫父類的私有方法
private void foo() {
System.out.println("Child's foo");
}
public void callFoo() {
foo(); // 調用子類的 foo 方法
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.callFoo(); // 輸出 "Child's foo"
}
}
```
在這個示例中,`Child` 類嘗試重寫父類 `Parent` 的私有方法 `foo()`。然而,由于私有方法不能被子類訪問,因此 `Child` 類實際上定義了一個新的私有方法 `foo()`,而不是重寫父類的方法。當我們通過子類對象調用 `foo()` 方法時,它會執行子類中的 `foo()` 方法,而不是父類中的方法。這說明私有方法不能被重載或重寫。