java 组合接口时的名字冲突

重载方法仅通过返回类型是区分不开的,在打算组合的不同接口中,尽量使用不同的方法名,否则可能导致混乱

//: interfaces/InterfaceCollision.java
package object;

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

 

posted @ 2019-01-03 02:15  江期玉  阅读(555)  评论(0编辑  收藏  举报