我有一個NullPointerException當我嘗試做這樣的事情的覆蓋方法:如何使用會員到稱爲超級構造
class A {
public A() {
aMethod();
}
public void aMethod() {
//Some stuff
}
}
class B extends A {
List<String> list = new ArrayList<String>
public B() {
super();
}
@Override
public void aMethod() {
super.aMethod();
list.add("Something"); //NullPointerException
}
}
我不能在構造函數調用超級之前實例列表,我認爲將它實例化爲「aMethod」是不合適的。
在我看來,這是一個錯誤的設計,因爲'A'的擴展器必須知道'A'的實現細節,'aMethod'直接在構造函數中調用,因此在'aMethod'中沒有字段可以在沒有明確地初始化它們的情況下使用。 – Smutje 2014-10-09 20:46:31