调用子类 object 的方法时发生 StackOverflowError?

StackOverflowError when calling method of subclass object?

执行测试 class 出现 Whosebug 错误 :(

Parent class :

package Pack;

public class Alpha {
  protected void sayHi() {
    System.out.println("Hi...from Alpha");
  }
}

Child class :

import Pack.Alpha;

public class AlphaSub extends Alpha {
  AlphaSub sb=new AlphaSub() ;

  void hi() {
    sb.sayHi() ;

  }
}

测试class:

public class test {
public static void main(String[] args) {

    AlphaSub ob=new AlphaSub() ;
    ob.hi() ;
}

}

你的 Whosebug 与继承无关,但与这一行(在 AlphaSub 内)有关:

AlphaSub sb=new AlphaSub() ;

您正在 AlphaSub 中创建一个新的 AlphaSub 实例,这会导致无限循环。我假设您甚至没有进入测试

中的 ob.hi()