我在C#中製作了一個非常基礎的遊戲,並使用類圖作爲指導。C#類Inheretance - 可以更改子類中的變量?
我有一個Building
類和Room
類。 在我的圖上,它說Room
繼承自Building
,所以Building
是這種情況下的超類。
我Building
類包含的設立數組來保存客房
public class building // Building Object Class
{
const int SizeConst = 4;
private int[,] Cells;
public int[,] create()
{
Cells = new int[SizeConst, SizeConst];
return Cells;
}
}
Room
是完全一樣的,雖然這將是很好能夠改變大小不變indipendantly。
例如,Size
Building
的常數可能會保持在4給25個房間。但是如果我想將Room
的Size
常數更改爲5以獲得36個移動空間呢?
您可以將常量更改爲具有硬編碼值的虛擬getter。你可以找到如何做那裏:http://stackoverflow.com/questions/770437/overriding-constants-in-derived-classes-in-c-sharp – vmeln
多數民衆贊成,很好,謝謝你的幫助 – Harvey
不得不說,房間繼承建築似乎是一個壞的舉動。兩者都有一個共同的祖先,或使用一個接口,應該給你一個更好的設計。建築物有房間,並不意味着房間是建築物。 –