dostuff()方法是否可以在不编辑A类的情况下打印“B did stuff”?如果是,我该怎么做?
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
a.doStuff();
b.doStuff();
Console.ReadLine();
}
}
class A
{
public void doStuff()
{
Console.WriteLine("A did stuff");
}
}
class B : A
{
public void doStuff()
{
Console.WriteLine("B did stuff");
}
}
我正在修改一个蒸汽游戏,泰瑞亚。我不想反编译和重新编译,因为这会和蒸汽搞得一团糟。我的程序通过XNA“注入”Terraria。我可以从XNA中使用UpDebug()和DRAW()方法来处理一些事情。但这是非常有限的。我不想重写基方法来修改更多的东西(例如worldGen)。
最佳答案
是的,如果您在doStuff
中声明virtual
为A
,然后在override
中声明B
。
class A
{
public virtual void doStuff()
{
Console.WriteLine("A did stuff");
}
}
class B : A
{
public override void doStuff()
{
Console.WriteLine("B did stuff");
}
}
关于c# - 从父级调用子类方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9067885/