Interface Collision
// : c08:InterfaceCollision.java
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
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 {
public void f() {
}
public int f(int i) {
return 1;
} // overloaded
}
class C3 extends C implements I2 {
public int f(int i) {
return 1;
} // overloaded
}
class C4 extends C implements I3 {
// Identical, no problem:
public int f() {
return 1;
}
}
// Methods differ only by return type:
//! class C5 extends C implements I1 {}
//! interface I4 extends I1, I3 {} ///:~
Related examples in the same category