【发布时间】:2018-06-30 10:42:34
【问题描述】:
我正在尝试创建一个(相当笨拙的)小游戏,但遇到了问题。 我有一个类树如下:
- 实体
- 字符
- 播放器
- 敌人
- 静态
- 楼梯
- 其他遭遇
- 字符
现在我打算实现一个生成器,它应该基于一些简单的启发式方法生成地图,并通过实体构造函数将遭遇添加到一些 Tiles。为此,我选择在我的 Tile 构造器中使用“Entity e”参数。
现在为了获得正确的类型,我在所有类中设置了一个虚方法来返回它们的确切类型。这在 Entity.cs 和 Character.cs 中都是抽象的。但是正如预期的那样,继承一个抽象方法并使其再次抽象并没有多大用处。
因此,我的问题是,是否有任何“正确”的实施方式,或者是否有一些简单的解决方法?我总是可以跳过 Entity.cs 中的方法并在 Character.cs 和 Static.cs 中创建两个不同的方法,但这似乎太……乡巴佬了。
TL;DR:如何在孙子中继承抽象方法,而不在子孙中声明。
【问题讨论】:
标签: c# class inheritance abstract