class A { public virtual AA Foo (U u) { return default (AA); } } class B : A { public override dynamic Foo (T t) { return 'c'; } } public class MainClass { public static int Main () { B b = new B (); char res = b.Foo (5); return 0; } }