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();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewogIGNsYXNzIEEgICAgICB7IHB1YmxpYyAgICAgICAgdmlydHVhbCAgICAgICAgICAgICAgdm9pZCBQcmludE1lc3NhZ2UoKSB7IENvbnNvbGUuV3JpdGUoIkEiKTsgfSB9CiAgY2xhc3MgQiA6IEEgIHsgcHVibGljIHNlYWxlZCAgICAgICAgIG92ZXJyaWRlICAgICB2b2lkIFByaW50TWVzc2FnZSgpIHsgQ29uc29sZS5Xcml0ZSgiQiIpOyB9IH0KICBjbGFzcyBDIDogQSAgeyBwdWJsaWMgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IHZvaWQgUHJpbnRNZXNzYWdlKCkgeyBDb25zb2xlLldyaXRlKCJDIik7IH0gfQoJCiAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKSAgCiAgeyAgCiAgICB2YXIgYiA9IG5ldyBCKCk7IAogICAgdmFyIGMgPSBuZXcgQygpOyAgCiAgICAoKEEpYykuUHJpbnRNZXNzYWdlKCk7ICAKICAgICgoQSliKS5QcmludE1lc3NhZ2UoKTsgIAogICAgYy5QcmludE1lc3NhZ2UoKTsgIAogIH0KfQ==