public class Test {
public static void main(String args[]){
System.out.println("Main");
Test2 test2 = new Test2();
}
}
class Test2 {
Test2() {
System.out.println("Inside Test2");
//do something
}
Test3 test = new Test3();
}
class Test3 {
Test3() {
System.out.println("Inside Test3");
//do something
}
Test2 test2 = new Test2();
}
Здесь я хотел понять, почему это утверждение Test2 test2 = new Test2();
в основном методе класса Test
не может вызвать конструктор класса Test2
и, аналогично, Test3 test = new Test3();
в Test2
не может вызвать конструктор класса Test3
.
Здесь я хотел бы понять причину такого поведения?
Ожидаемый выход: Main Inside Test2 Inside Test3
Токовый выход: Main
с этой ошибкой
Exception in thread "main" java.lang.StackOverflowError
at com.practice.stackoverflow.Test3.<init>(Test.java:26)
at com.practice.stackoverflow.Test2.<init>(Test.java:17)
at com.practice.stackoverflow.Test3.<init>(Test.java:26)