gpt4 book ai didi

java - 令人困惑 "override a private method"

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:53 27 4
gpt4 key购买 nike

关于这段代码我有两个问题

public class Override {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Override po = new Derived();
po.f();
}
}

class Derived extends Override {
public void f() {
System.out.println("public f()");
}
}

/*
* Output: private f()
*/// :~

1) 函数 f 如何在 Override po 的引用上可见;

2) 为什么输出是“private f()”

最佳答案

  1. main方法在Override类中,当然可以看到Override类的私有(private)成员。

  2. 没有覆盖 Derived 类中的方法 f,没有多态性。变量 po 的类型是 Override,因此它将采用类 Override 中的方法 f

请注意,Override 类中的方法 fDerived 类中根本不可见。类 Derived 中的方法 f 是一个不同的方法,它与父类(super class)中的方法 f 没有任何关系。

关于java - 令人困惑 "override a private method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346208/

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