沒有在編程一個newbee,對不起,這是不對的實施method overloading
。
如果創建同名的方法,以及相同的參數那麼這將是method overriding
。
如果創建同名的方法,但不同的參數那麼這將是method overloading
。
如果你需要實現你的method overriding
例如,然後在你的derived class method
添加override
關鍵字並添加virtual
關鍵字與base class method
:
public class BaseClass
{
public virtual void MyFunction()
{
Console.WriteLine("");
}
}
public class DerivedClass:BaseClass
{
public override void MyFunction()
{
Console.WriteLine("");
}
}
如果你想實現的overloading
一個例子,那麼你只需要更改兩種方法的參數。變化意味着他們必須彼此不同。例如:
public class BaseClass
{
public void MyFunction()
{
Console.WriteLine("");
}
}
public class DerivedClass:BaseClass
{
public void MyFunction(string input)
{
Console.WriteLine("");
}
}
「這樣做實際上隱藏了BaseClass.MyFunction。」 - 不,沒有'new'關鍵字... OP的代碼不會編譯。 –
@JimBalter它編譯時會出現警告,除非添加'new'。 – Blorgbeard
我的錯誤。它*應該*是一個錯誤;它不是爲了向後兼容。 –