Java

java私有方法能被重载或重写吗

小亿
163
2024-05-31 17:50:14
栏目: 编程语言

在 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()` 方法,而不是父类中的方法。这说明私有方法不能被重载或重写。

0
看了该问题的人还看了