// Note how the order of type parameters is different // in the base class. class Foo { public Foo () { } public void Hello (T t) { } } class Bar : Foo { public Bar () { } public void Test (T t, U u) { } } class X { static void Test (Bar bar) { bar.Hello ("Test"); bar.Test (7, "Hello"); } public static void Main () { Bar bar = new Bar (); Test (bar); } }