2011-11-02 32 views
0

比方說,我想要創建一個類來表示多邊形。我想讓子類代表特定的形狀,如三角形,四邊形或五角形。將子類與ints以及Java中的其他數據關聯起來

這意味着我將有實現與整數具有自然關聯的多邊形的類。有沒有一種方法可以在我的代碼中表示這一點?我想我真正想要的是類似於泛型的東西,除了它們以數字作爲參數。例如,如果我可以說像Polygon < 4>來指代四邊形,那將會很好。

回答

0

這將需要一個構造函數參數,如「numberOfSides」。

+0

是的,但我希望numberOfSides成爲它的類的一部分。那可能嗎? – Joe

+0

@Joe也許,但我不知道如何(沒有我認爲會打破你想做的目的的子類/接口/等)。泛型是關於類型的,而不是數值。 –

+0

不,我想要子類。我希望三角形成爲與五角形不同的「物體」。 – Joe

1

您可以使用一種方法創建一個工廠,該方法根據頂點的數量返回所需類型的對象。

像PolygonFactory.createPolygon(numberOfVertices)。

+0

這或多或少是我所說的;我認爲這只是Java類型系統的問題,而不是OP所期望的。另外你需要無限數量的子類;) –

+0

我想這就是它的工作方式。我可以創建一個枚舉來將子類型與數字關聯起來。 – Joe

+0

@DaveNewton Yup,或者無數個子類,或者像你的情況一樣,只有一個具有參數化實例的類。 – soulcheck

相關問題