using System; public class Test { class A { public virtual void PrintMessage() { Console.Write("A"); } } class B : A { public sealed override void PrintMessage() { Console.Write("B"); } } class C : A { public new void PrintMessage() { Console.Write("C"); } } static void Main(string[] args) { var b = new B(); var c = new C(); ((A)c).PrintMessage(); ((A)b).PrintMessage(); c.PrintMessage(); } }