class OverrideSlice { interface I { int f(int i); } class O implements I { public int f(int i) { return i; } } class O0 implements I { public int f(int i) { return 0; } } { f(1, new O()); } void f(int c, I i) { int x = i.f(c); } }