1
我试图从持有对基类的引用的数组中的派生类访问字段。来自派生类的访问字段
我有三类:
abstract GameObjectBase
{
}
和来自是:
public Gamespace: GameObjectBase
{
private bool containsItem;
}
和:
public GameWall: GameObjectBase
{
}
(显然,这些类存储更多的数据,方法和构造函数)。
我已创建从这些对象阵列,这样
private GameObjectBase[,] _labyrinthArray = new GameObjectBase[10,10];
然后我填充Gamespaces和Gamewalls所述阵列。但是,当我访问数组中的Gamespace对象时,containsItem
字段由于引用了GameObjectBase类型的对象而无法访问。
很明显,我可以把containsItem
放在GameObjectBase中,并从那里访问它,但这不适合我的OOP方法。我发现的唯一的其他解决方案是明确地将该对象投射到Gamespace
。
这似乎很粗糙,容易出错。有没有更好的解决方案?
如何访问Gamespace对象(代码)? – DanielVorph
在这种情况下将其推入基地有什么问题? Gamewall实现在调用时始终返回false是完全正确的 – jglouie