没有在编程一个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
我的错误。它*应该*是一个错误;它不是为了向后兼容。 –