初期化手順 - またまちがった 2007/10/10

このソースコードは問題なくうごくでしょうか。


public class TestInit {

public static void main(String[] args) {
new A();
}

}

class At {
void print() {
System.out.println("i am At...");
}
}

class A extends SuperA {

At at = new At();

A() {
super();
}

@Override
public void initialize() {
at.print();
}

}

/**
*
* 抽象クラス
*
*/
abstract class SuperA {

/**
* 初期化メソッドを呼び出します。
*/
public SuperA() {
initialize();
}

/**
* 初期化メソッド。 使用者は実装しないといけない。
*
*/
public abstract void initialize();

}


ヌルポインタを起こします。

: