Was bedeutet "public new virtual void Method ()"?

Wann werden neue virtuelle Schlüsselwörter verwendet, um die Methode zu dekorieren? Was ist die Zuneigung? Definieren Sie eine Schnittstelle und fügen Sie eine Klasse hinzu, um die Schnittstelle zu erben. Verwenden Sie jedoch die neue virtuelle Methode, um die Schnittstellenmethode zu realisieren.

<code> 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();
    }
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage