Language Basics Java

// : 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 {} ///:~