我正在复习认证考试,并尝试了以下代码:
class A {
B b = new B();
static {
System.out.println("A static.");
}
{
System.out.println("A instance.");
}
A() {
System.out.println("A constructor.");
}
}
class B extends A {
static {
System.out.println("B static.");
}
{
System.out.println("B instance.");
}
B() {
System.out.println("B constructor.");
}
}
public class Raaawrrr {
public static void main(String args[]) {
A a = new A();
}
}
它打印:
静电。 B 静态。
并随后导致堆栈溢出。我很难理解为什么。你能帮我一下吗?
最佳答案
A 实例化 B。B 恰好也是 A 类型,因此会再次实例化。它实例化了 B...等等。
关于java - 实例化对象时出现 StackOverFlow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135976/