考虑以下代码
public class Base
{
public virtual int Add(int a,int b)
{
return a+b;
}
}
public class Derived:Base
{
public override int Add(int a,int b)
{
return a+b;
}
public int Add(float a,float b)
{
return (Int32)(a + b);
}
}
如果我创建一个Derived类的实例,并使用int类型的参数调用Add方法,为什么它会调用带有float参数的Add方法?Derived obj =new Derived()
obj.Add(3,5)
// why this is calling
Add(float a,float b)
为什么它没有调用更具体的方法?
int a = 3; int b = 5; obj.Add(a, b);
的内容也没有任何区别。 - Ashley John