类对象创建到方法上面就会报错异常,创建在方法里面则正常运行
package Test;
import java.util.Date;
public class SuperTest extends Date {
SuperTest a = new SuperTest();
private void test() {
// SuperTest a = new SuperTest();
System.out.println(a.getClass().getName());
}
public static void main(String[] args) {
new SuperTest().test();
}
}
运行结果:
D:\Tools\Java\jdk-17.0.1\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\lib\idea_rt.jar=14600:D:\Program
Files\JetBrains\IntelliJ IDEA 2022.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\ProjectWarehouse\IdeaProjects\JavaGUI\out\production\TAC2022
Test.SuperTest
Exception in thread "main" java.lang.StackOverflowError
at Test.SuperTest.<init>(SuperTest.java:6)
at Test.SuperTest.<init>(SuperTest.java:6)
package Test;
import java.util.Date;
public class SuperTest extends Date {
// SuperTest a = new SuperTest();
private void test() {
SuperTest a = new SuperTest();
System.out.println(a.getClass().getName());
}
public static void main(String[] args) {
new SuperTest().test();
}
}
运行结果:
D:\Tools\Java\jdk-17.0.1\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\lib\idea_rt.jar=14718:D:\Program
Files\JetBrains\IntelliJ IDEA 2022.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\ProjectWarehouse\IdeaProjects\JavaGUI\out\production\TAC2022
Test.SuperTest
Test.SuperTest
Process finished with exit code 0