【发布时间】:2012-05-02 14:33:51
【问题描述】:
什么时候使用新的虚拟关键词来装饰方法?感情是什么?就像定义一个接口,并添加一个类来继承接口。而是使用新的virtual来实现接口方法。
interface IPrinter
{
void Print();
}
public class PrinterOne : IPrinter
{
public void Print()
{
Console.WriteLine("PrinterOne.");
}
}
public class PrinterTwo : PrinterOne
{
public new virtual void Print()
{
Console.WriteLine("PrinterTwo.");
}
}
public class PrinterThree : PrinterTwo
{
public override void Print()
{
Console.WriteLine("PrinterThree.");
}
}
public class PrinterFour : PrinterThree
{
public override void Print()
{
Console.WriteLine("PrinterFour.");
}
}
static void Main(string[] args)
{
IPrinter iprinter = new PrinterFour();
iprinter.Print();//the output is PrinterOne? why???
Console.ReadLine();
}
【问题讨论】:
-
//输出是PrinterOne?为什么???因为只有 PrinterOne 实现了接口
-
这能回答你的问题吗? new keyword in method signature
标签: c#