co oznacza „publiczna nowa wirtualna metoda void ()”?

kiedy używasz nowych wirtualnych słów kluczowych do dekoracji metody? co to za uczucie? Podobnie jak zdefiniować interfejs i dodać klasę, aby dziedziczyć interfejs. ale użyj nowego wirtualnego do realizacji metody interfejsu.

<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>

questionAnswers(4)

yourAnswerToTheQuestion