我在这里面临一个问题,让我们假设我有一个父类:
class ParentClass
{
public void MethodA()
{
//Do stuff
MethodB();
}
public void MethodB()
{
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
继承ParentClass并重写MethodB()的子类:
class ChildClass : ParentClass
{
public new void MethodB()
{
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我从ChildClass对象调用MethodA()
public static void Main()
{
ChildClass childObject = new ChildClass();
childObject.MethodA();
}
Run Code Online (Sandbox Code Playgroud)
我怎么能确定将调用MethodB()帽子来自子类?
如果您修复了编译错误,通过在父类中创建虚拟方法,并通过向子类中的方法添加返回值,那么它将正常工作:
class ParentClass
{
…
public virtual void MethodB()
{
//Do stuff
}
}
class ChildClass : ParentClass
{
public override void MethodB()
{
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)