gpt4 book ai didi

java - 在继承中重写方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:26 26 4
gpt4 key购买 nike

我的代码:

public class PrivateOverride {

private void f() {
System.out.println("private f()");
}

public static void main(String[] args) {
PrivateOverride po = new derived();
po.f();
}
}

class derived extends PrivateOverride {

public void f() {
System.out.println("public f()");
}
}

输出: 私有(private) f()

为什么?

最佳答案

因为 derived#f() 不会覆盖父类的私有(private) f() 方法。

您可以通过添加 @Override 来确认它注释到 derived 类中的 f() 方法,看看它不会编译。

额外提示:
覆盖方法f(),它应该从父类继承,即在您的子类中可见,它私有(private) 方法从来都不是这样。

正确方法覆盖的附加规则总结在 this table 中.

关于java - 在继承中重写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com