a.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");
}
}
我正在修改一款 Steam 游戏,泰拉瑞亚。而且我不想反编译并重新编译它,因为那样会很麻烦。我的程序通过 XNA“注入(inject)”到泰拉瑞亚。我可以使用 XNA 的 update() 和 draw() 方法来修改一些东西。但它非常有限。我不想覆盖基本方法来修改更多东西(例如 worldgen)。
最佳答案
是的,如果您在 A
中将 doStuff
声明为 virtual
,然后在 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/