Ram*_*mar 5 c# overriding overloading
我想覆盖一个方法(method(int x)):
public class A
{
public virtual void method(int x)
{
Console.WriteLine("base");
}
}
public class B : A
{
public override void method(int x)
{
Console.WriteLine("overridden");
}
public void method(Double x)
{
Console.WriteLine("overloaded");
}
}
Run Code Online (Sandbox Code Playgroud)
而我这样称呼它:
public static class Program
{
public static void Main()
{
B obj = new B();
obj.method(1);
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,打印"重载"并且不像我期望的那样"覆盖".如果我更改class B为以下,Main方法现在打印"覆盖":
public class B
{
public void method(int x)
{
Console.WriteLine("overridden");
}
public void method(Double x)
{
Console.WriteLine("overloaded");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |