下面是相關的類和方法:子類是否導致類停止實現接口?
public class BoardTile implements BoardCoordinate
public class WordPath extends LinkedList<BoardTile>
public void inputCoordinates(Collection<BoardCoordinate> coords)
基本上,這是怎麼回事是這樣的:我在寫一個機器人的flash遊戲,我有叫BoardCoordinate接口對代表的位置板。一個代表板上瓦片的類被稱爲BoardTile,並且由於它知道它的位置,它實現了BoardCoordinate接口。
我有一個代表板上的路徑,這實際上是一個BoardTiles LinkedList的路徑列表。最後,我有一種方法將一組BoardCoordinates傳遞給我的java.awt.Robot,它將請求的路徑輸入到Flash遊戲。該集合是爲了避免屏幕刮取器類和我的數據處理包之間可能存在的醜陋偶合而傳遞的。
那麼,這裏是有問題的代碼:
/* The highest scoring path found. */
Wordpath highest = null;
/* ...
* ... find the highest scoring path, etc.
*/
if (longest != null) {
screen.inputCoordinates(longest);
}
編譯器錯誤我得到的是這樣的:該方法inputCoordinates(集合)的屏幕類型是不適用的參數(WordPath)。
但WordPath是BoardCoordinate的LinkedList! LinkedList是一個集合!這裏發生了什麼?
當然,我也硬着頭皮接受連接,但首先,這是不是我想要做的,其次,一個學習的機會......
不是你的問題的答案,但我想建議對設計或類命名做一些小改動, BoardTile`是你放置(或者)放置在遊戲地圖或遊戲板上的東西,但是這樣的貼圖不是座標,它有**座標,界面的設計或者命名都應該反映這個「現實世界」財產現在一個小的改變通常會在你嘗試瞭解你自己的代碼後得到回報(個人經驗......) )或一旦你需要傳達你的設計(另一種個人經驗;-))在你的情況下,我會改變設計的構圖。我' – 2011-01-07 07:32:03