abstract class A { abstract void foo(A x); void bar(A x){ foo(x); } } abstract class A0 { abstract void foo(A0 x); void bar(A0 x){ foo(x); } } abstract class A1 { abstract void foo(A1 x); void bar(A1 x){ foo(x); } } abstract class A10 { abstract void foo(A10 x); void bar(A10 x){ foo(x); } } abstract class A2 { abstract void foo(A2 x); void bar(A2 x){ foo(x); } } abstract class A20 { abstract void foo(A20 x); void bar(A20 x){ foo(x); } }