我正在實現一個Java Graph庫(學習...)。因此,我寫了一個接口Java - 使用Object參數實現接口
public interface DigraphInterface {
public boolean isEmpty();
public int size();
public boolean isAdjacent(Object v, Object w);
public void insertEdge(Object v, Object w);
public void insertVertex(Object v);
public void eraseEdge(Object o, Object w);
public void eraseVertex(Object v);
public void printDetails();
}
作爲邁向實現的第一步,我寫了實現上述接口的Digraph類。但是,爲了簡單起見,我想節點標識爲整數,所以我定義功能
@Override
public boolean isAdjacent(int v, int w) {
// TODO Auto-generated method stub
return adjList[v].contains(w) || adjList[w].contains(v);
}
但是,我得到的錯誤,我需要重寫或超實現方法。有人可以向我解釋這種行爲的基礎。另外,如果有人可以解釋,我們如何設計允許靈活添加任何類型組件的庫。
除了'int'甚至不是一個'Object',一個實現不能提供比接口更少的承諾。你的接口已經承諾處理任何對象**。 – 2012-07-07 08:51:13
那麼,我應該怎麼做呢?我希望我不需要改變接口,當我希望實現另一個用字符串或別的東西標識節點的類。 – Code4Fun 2012-07-07 08:55:44