что означает «публичный новый виртуальный метод void ()»?

когда использовать новые виртуальные ключевые слова для украшения метода? что такое привязанность? Как определить интерфейс и добавить класс для наследования интерфейса. но используйте новый виртуальный, чтобы реализовать метод интерфейса.

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

Ответы на вопрос(4)

Ваш ответ на вопрос