gpt4 book ai didi

java - 继承中的意外输出

转载 作者:搜寻专家 更新时间:2023-11-01 01:49:52 25 4
gpt4 key购买 nike

我从 Java 认证问题中得到了一段代码,它的输出让我有些困惑。这是代码

class Baap {
public int h = 4;
public int getH() {
System.out.println("Baap " + h);
return h;
}
}

class Beta extends Baap {
public int h = 44;
public int getH() {
System.out.println("Beta " + h);
return h;
}
public static void main(String[] args) {
Baap b = new Beta();
System.out.println(b.h + " " + b.getH());
}
}

输出是:

Beta 44
4 44

我期待它是:

4 Beta 44
44

为什么会产生这个输出?

最佳答案

输出由两部分组成:

  1. 内部印有一行 getH()
  2. 内部印有一行 main()

getH() 生产的生产线在 main() 生成的行之前打印,因为 getH()必须在 main 之前完成完成构建其输出。

现在输出应该很清楚了:即使4在调用 getH 之前被评估内部制造main , 它在 getH() 之后打印已经回来了。

关于java - 继承中的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41717589/

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