gpt4 book ai didi

java - final 方法在 Java 中的确切工作方式

转载 作者:搜寻专家 更新时间:2023-10-31 20:00:35 25 4
gpt4 key购买 nike

class Clidder {
private final void flipper() {
System.out.println("Clidder");
}
}
public class Clidlet extends Clidder {
public final void flipper() {
System.out.println("Clidlet");
}
public static void main(String args[]) {
new Clidlet().flipper();
}
}

结果如何?对于这个问题,我期望答案是“编译失败”,因为 final 方法不能被重写并且它不允许继承。但答案是“Cliddet”,这是为什么呢?我是否误解了这个概念中的某些内容。这怎么可能是输出?请解释。

最佳答案

private修饰符表示子类Clidlet看不到Clidder类中的flipper()方法。所以它不是覆盖,而是看起来像子类中的新方法声明。私有(private)方法/字段不能被覆盖,因为它是看不见的。

关于java - final 方法在 Java 中的确切工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872523/

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