我想在所述類的方法內調用通用抽象類的構造函數。下面的代碼顯示了這一點:通用抽象類構造函數
public abstract class Node<T> {
public Collection <Node<T>> pars;
public Collection<Node<T>> interactors;
private boolean target = false;
private boolean multiple = false;
private T value;
//constructor for a simple node
public Node(T val){
this.value = val;
}
//constructor for a multiple interaction node
public Node(Collection<Node<T>> inter, T val){
this.interactors = inter;
this.value = val;
if (inter.size()>0){
this.multiple = true;
}
}
public void find_inters(){
ArrayList<Collection<T>> multi_interactions = search();
for (int i = 0; i < multi_interactions.size(); i++){
Node<T> a = new Node<T>(multi_interactions.get(i), this.value); <----i get compile error here
}
}
}
但我不斷收到一個錯誤,我不能實例化類型節點。我想在函數find_inters()中創建一個新的Node對象,但我不能。任何人都知道爲什麼/可能的解
如果您需要實例化類型,爲什麼要使它成爲'abstract'? –
簡單,因爲還有其他方法我不能實現,所以我必須使它們抽象。將刪除抽象允許我實例化一個節點? (因爲我總是可以找到抽象方法的解決方法) –
是的,但是你不能有未實現的方法。 – zapl