gpt4 book ai didi

java - 运行 B2 类时,输出是什么?

转载 作者:行者123 更新时间:2023-11-30 03:24:08 26 4
gpt4 key购买 nike

public class P23 {
P23() {
print();
}

void print() {
System.out.println("A");
}
}

class B2 extends P23 {
int i = 0; // Math.round(3.5f);

public static void main(String[] args) {
System.out.println("inside main");
P23 a = new B2();
a.print();
}

void print() {
System.out.println(i);
}
}

不打印任何内容!我缺少什么?请帮助我了解如何调试这个。

最佳答案

如果这两个类位于同一个源文件中,则应将具有 main 方法的类设为公共(public)类(即将 class B2 更改为 public class B2并将public class P23更改为class P23)。如果它们不在同一源文件中,您仍应将 B2 公开。

修复后,以下几行的输出将是:

System.out.println("inside main"); // prints 'inside main'
P23 a = new B2(); // prints "0" since the constructor of B2 calls the constructor of P23
// which executes B2's print()
a.print(); // prints "0" since B2's print() is executed

在对print的两次调用中,都调用了子类B2的print方法,因为a的运行时类型是B2

因此输出为

inside main
0
0

关于java - 运行 B2 类时,输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691366/

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