我是C#的新手。我了解继承的概念。我想知道是否可以重载重写的方法,我用它搜索了一下,但找不到一个好的答案。我也尝试以下代码。在代码中,我正在访问重写方法的重载方法,当我调试该程序时,它不会在屏幕上返回任何输出。所以我对重写的方法是否可以重载感到困惑?
public class method1
{
public virtual void PrintName()
{
Console.WriteLine("Hello world");
}
}
public class method2 : method1
{
public override void PrintName()
{
Console.WriteLine("Hello World Overriden");
}
public string PrintName(String strPolymorphism)
{
return strPolymorphism;
}
}
class Program
{
static void Main(string[] args)
{
method2 m2 = new method2();
m2.PrintName("method overloading is possible?");
}
}
最佳答案
您的m2.PrintName
仅返回它收到的字符串。它没有任何作用。如果这样做,您将看到输出。
public string PrintName(String strPolymorphism)
{
this.PrintName(); // first write the output of `PrintName` to the console
Console.WriteLine("Called PrintName with: " + strPolymorphism);
return strPolymorphism;
}
重载
m2.PrintName
与PrintName
或method2
类中具有不同签名的覆盖的method1
方法无关。签名很重要。很多!