私はNullPointerException
下のコードを取得しています。親クラスを拡張するときのJava NullPointerException
Parent.java
public abstract class Parent {
public Parent(){
parentFunc();
}
public abstract void parentFunc();
}
Child.javaは
public class Child extends Parent {
ArrayList<String> list = new ArrayList<String>();
@Override
public void parentFunc() {
list.add("First Item");
}
}
私が作成し、私はここでNullPointerException
を取得していますChild
new Child()
ようのインスタンスは、私のコンソール出力である
Exception in thread "main" java.lang.NullPointerException
at Child.parentFunc(Child.java:8)
at Parent.<init>(Parent.java:5)
at Child.<init>(Child.java:3)
at Main.main(Main.java:8)
私はその例外occuを知っています親コンストラクタで呼び出されたChild.parentFunc()が原因ですが、本当に混乱しました。だから私は何が起こっているのだろうか
作成の順序は何ですか?
- リスト変数が作成されたコンストラクタは、コンストラクタで呼び出さ
- 機能を作成し、呼ばれ 親のコンストラクタは、関数が呼び出されて呼び出さ
親が最初に作成され、次に子が作成されます。関数が呼び出されたときにリストが作成されなかったため、NPEが呼び出されました。 – duffymo