class A {
public void foo(int a, int b) {
}
}
class D extends B implements Z {
public void foo(int a, int b) {
}
}
class U {
void bar(A a) {
a.foo(1, 2)
}
void bar(B b) {
b.foo(3, 4)
}
void bar(C c) {
c.foo(5, 6)
}
void bar(D d) {
d.foo(7, 8)
}
void bar(Z z) {
z.foo(9, 10)
}
}