期待“来自派生的你好”。但得到“基地的你好。”。
class Program
{
interface IBase
{
void Method();
}
public class Base: IBase
{
public virtual void Method()
{
Console.WriteLine("Hello from the base.");
}
}
public class Derived : Base
{
public virtual new void Method()
{
Console.WriteLine("Hello from the derived.");
}
}
static void Main(string[] args)
{
IBase x = new Derived();
x.Method();
}
}
那么为什么不调用派生类的方法。更重要的是,如何在不将 x 转换为 Derived 类型的情况下调用派生类方法?
在我的实际应用中,IBase还有其他几个相关的方法,而Derived只替换了IBase中的两个方法。