MrD*_*ays 6 c# inheritance overriding overloading
刚刚在网上进行测验,准备面试C#。我读到这个问题:
using System;
// ...
public class Program
{
static void Main(string[] args)
{
Derived d = new Derived();
int i = 10;
d.Func(i);
}
}
public class Base
{
public virtual void Func(int x)
{
Console.WriteLine("Base.Func(int)");
}
}
public class Derived : Base
{
public override void Func(int x)
{
Console.WriteLine("Derived.Func(int)");
}
public void Func(object o)
{
Console.WriteLine("Derived.Func(object)");
}
}
Run Code Online (Sandbox Code Playgroud)
它说输出实际上应该是Derived.Fun(Object)。您能帮我理解为什么会这样做吗?我以为它将调用Func以整数作为参数的命令。