gpt4 book ai didi

java - 为什么重写的函数首先被调用?

转载 作者:行者123 更新时间:2023-12-01 18:06:52 25 4
gpt4 key购买 nike

我执行了以下程序,我对得到的输出感到好奇,其中函数输出首先被打印,即使它是我尝试首先打印的变量。

class Baap{

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

}

public 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 bb = (Beta)b;
System.out.println(bb.h+" "+bb.getH());
}

}

输出如下

Beta 44
4 44
Beta 44
44 44

有人可以帮我理解为什么功能 block 首先被执行吗?

最佳答案

您的System.out.println行打印一个String

String 在运行时计算为 b.h + ""+ b.getH(),因此它连接 b.h、空格以及方法 b.getH() 的结果,因此它调用 getH() 打印 Beta 44,然后打印结果 4 44

关于java - 为什么重写的函数首先被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35727305/

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