考虑代码重载决策
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);
}
}
如果我创建派生类的实例,并调用添加与它为什么调用带有浮动参数的Add方法int类型的参数
Derived obj =new Derived()
obj.Add(3,5)
// why this is calling
Add(float a,float b)
为什么不调用更具体的方法?
你怎么知道3和5是int?尝试指定他们的类型,看看会发生什么。 –
你怎么知道它是? –
你能编译这个吗?你可能会得到一些类似float的类型转换错误吗? – Anuraj