interface A extends A {} interface B {} class T implements A, B{ T1 foo(A a, B b) { return null; } void bar (boolean a, A a1, B b1){ T t = a ? a1 : b1; } }