在 Java 中,private 方法不能被重写(override)。原因和细节如下:
private 修饰的方法 只能在当前类中访问class Parent {
private void method() {
System.out.println("Parent private method");
}
}
class Child extends Parent {
// 这不是重写,而是一个全新的方法
private void method() {
System.out.println("Child private method");
}
}
方法重写必须满足:
而 private 方法:
class Parent {
private void show() {
System.out.println("Parent show");
}
}
class Child extends Parent {
private void show() {
System.out.println("Child show");
}
}
这里是:
| 修饰符 | 能否重写 | 说明 |
|---|---|---|
private |
❌ 不能 | 子类不可见 |
final |
❌ 不能 | 禁止重写 |
static |
❌ 不能 | 静态绑定 |
default |
✅ 可以 | 接口默认方法 |
protected / public |
✅ 可以 | 正常重写 |
可以,通过 父类 public / protected 方法间接调用
class Parent {
private void method() {
System.out.println("Parent private method");
}
public void call() {
method(); // 在父类内部调用
}
}
class Child extends Parent {
}
new Child().call(); // 输出:Parent private method
Java 中 private 方法不能被重写,因为子类无法访问,也不参与多态。
如果你愿意,我也可以帮你对比:
private vs final方法重写 vs 方法隐藏免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。