ばかげた質問かもしれませんが、今はご容赦ください。私は次のようなものを持っています:
public class A{
public A(){
//Some statements here
B bObj = new B(); //Goes in infinite loop this above statement
(new Thread(bObj)).start();
//Some statements here
}
public static void main(String[] args){
A aObj = new A();
}
}
}
class B extends A implements Runnable{
public testprint(){
System.out.println("Inside testprint()");
}
}
スーパークラスでサブクラスオブジェクトを作成すると、サブクラスオブジェクトが作成されるとサブクラスオブジェクトを作成し続けるスーパークラスコンストラクターを呼び出し続けると推測されるため、無限ループに入ります。メインでサブクラス オブジェクトを宣言すると、スーパークラス オブジェクトがまだ初期化されていないため、「静的コンテキストから非静的メンバーを参照できません」のようなメッセージが表示されます。そのため、メインでサブクラス オブジェクトを初期化できません。
では、これに対処するための良い方法は何でしょうか?