// interfaces/InterfaceCollision.java // (c)2017 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://OnJava8.com for more book information. interface I1 { void f(); } interface I2 { int f(int i); } interface I3 { int f(); } class C { public int f() { return 1; } } class C2 implements I1, I2 { @Override public void f() {} @Override public int f(int i) { return 1; } // overloaded } class C3 extends C implements I2 { @Override public int f(int i) { return 1; } // overloaded } class C4 extends C implements I3 { // Identical, no problem: @Override public int f() { return 1; } } // Methods differ only by return type: //- class C5 extends C implements I1 {} //- interface I4 extends I1, I3 {}