【发布时间】:2019-01-26 03:13:59
【问题描述】:
我正在制作一个基本游戏,并想创建一个“角色”父类,它将成为 NPC 和玩家角色的父类。我正在苦苦挣扎的是,当我调用一个继承的方法时,我希望能够使用在子级中分配的属性。为了把它放到上下文中,我想编写一个绘制函数,我可以从传递要绘制的 Graphics 对象的主程序调用该函数,我在这里有一个方法可以在我测试它时通过将它直接放入玩家角色中进行测试类:
public void Draw(Graphics g)
{
g.DrawImage(image, coords[0], coords[1]);
}
所以我在父类中有这个,但图像和坐标都在子类中分配。我可以定义将在父级中的变量类型,但它仍然无法识别已定义。
我将其称为 player.Draw(g)(其中 player 是子类的实例),但我要么得到“图像为空”或“图像未定义”,具体取决于我是否将 Bitmap image; 放在顶部与否。图像是在子类中定义的。
TLDR:从子类调用方法时,如何让父类引用子类中定义的内容。
【问题讨论】:
-
这是错误的逻辑,你不能在父类的子类中调用某些东西,因为你的父类不知道子类的类型或属性或方法。但是,另一种方法是向您的函数添加另一个参数并从子类传递一些东西
-
如果你能提供一个 minimal reproducible example 来显示你正在尝试做什么,那就太好了 - 只需向我们展示一个占位符 `// 这是我的问题`` 用于您的代码重新坚持。
标签: c# .net inheritance parent-child