Java 调用子类对象的方法时出现StackOverflower错误?
执行测试类会产生StackOverFlow错误:( 父类:Java 调用子类对象的方法时出现StackOverflower错误?,java,object,inheritance,stack-overflow,Java,Object,Inheritance,Stack Overflow,执行测试类会产生StackOverFlow错误:( 父类: package Pack; public class Alpha { protected void sayHi() { System.out.println("Hi...from Alpha"); } } public class test { public static void main(String[] args) { AlphaSub ob=new AlphaSub() ; ob.hi()
package Pack;
public class Alpha {
protected void sayHi() {
System.out.println("Hi...from Alpha");
}
}
public class test {
public static void main(String[] args) {
AlphaSub ob=new AlphaSub() ;
ob.hi() ;
}
儿童班:
import Pack.Alpha;
public class AlphaSub extends Alpha {
AlphaSub sb=new AlphaSub() ;
void hi() {
sb.sayHi() ;
}
}
测试等级:
package Pack;
public class Alpha {
protected void sayHi() {
System.out.println("Hi...from Alpha");
}
}
public class test {
public static void main(String[] args) {
AlphaSub ob=new AlphaSub() ;
ob.hi() ;
}
}堆栈溢出与继承无关,但与此行(在
AlphaSub
内)有关:
您正在您的
AlphaSub
中创建一个新的AlphaSub
实例,这会导致一个无结束循环。我假设您甚至没有进入测试中的ob.hi()
行您调试过它吗?很抱歉,我将此链接到了继承中。我得到了它。这是由于在它自己的类(子类)中创建了实例。