using System; public abstract class A { public abstract T Test (T t, X x); } public class B : A { public override T Test (T t, char x) { Console.WriteLine ("B"); return default (T); } } public class C : B { public override T Test (T t, char c) { base.Test ("a", 'a'); return default (T); } } class X { public static void Main () { new C ().Test (1, '1'); } }