using System;
public interface I
{
void test();
}
public class A : I
{
public virtual void test() { System.Console.Out.WriteLine("A\n"); }
}
public class B : A
{
public override void test() { System.Console.Out.WriteLine("B\n"); }
}
public class Main_
{
public static void Main(string[] args)
{
Main_.doTest(new B());
}
public static void doTest(I i)
{
i.test();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGludGVyZmFjZSBJCnsKICAgIHZvaWQgdGVzdCgpOwp9CiAgICAKcHVibGljIGNsYXNzIEEgOiBJCnsKICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgdGVzdCgpIHsgU3lzdGVtLkNvbnNvbGUuT3V0LldyaXRlTGluZSgiQVxuIik7IH0KfQogICAgCnB1YmxpYyBjbGFzcyBCIDogQQp7CiAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCB0ZXN0KCkgeyBTeXN0ZW0uQ29uc29sZS5PdXQuV3JpdGVMaW5lKCJCXG4iKTsgfQp9ICAKICAgIApwdWJsaWMgY2xhc3MgTWFpbl8KewogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICBNYWluXy5kb1Rlc3QobmV3IEIoKSk7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZG9UZXN0KEkgaSkKICAgIHsKICAgICAgICBpLnRlc3QoKTsKICAgIH0KfQ==