考慮代碼重載決策
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