Всем привет. Объясните пожалуйста, почему при вызове метода Print переменной ac типа А с ссылкой на C производится вызов метода из класса B, а не А?

namespace ClassInterfaceDelegate
{
    class Program 
    {
        static void Main(string[] args)
        {
            A ac = new C();
            Console.WriteLine(ac.Print());
        }
    }

    public abstract class A
    {
        public virtual string Print() { return "A"; }
    }

    public class B : A
    {
        public override string Print() { return "B"; }
    }

    public class C : B
    {
        public new string Print() { return "C"; }
    }
}

Ответы (0 шт):