有两个接口
  interface A {
     void m();
  }
  
  interface B {
     int m();
  }有类实现两个接口
  class T implements A, B {
     // ? 怎么样写上面的两个 m()方法? (注意返回值不一样)
  }

解决方案 »

  1.   

    那就是重载方法了撒.
      class T implements A, B {
            void m();
            int m();  }
      

  2.   

    掉了2个{}  class T implements A, B {
            void m(){};
            int m(){};  }
      

  3.   

    楼上的不报错才怪 不能以返回类型区分方法!T同时实现A, B 编译期出错
    The return type is incompatible 
      

  4.   

    hehe ,只能说接口设计的不好了  :)
      

  5.   

    请联系Peter von der Ah&eacute,让他改改Javac就可以编译通过了
      

  6.   

    class T implements A, B {
            void m(){};
            int m(){return;};  }
    这样应该可以了
      

  7.   

    class T implements A, B {
            void m(){};
            int m(){return;};  }
    这样应该可以了================================================
    一样会报错。不能只是以返回值来区分两个函数。
      

  8.   

    eclipse 有自动揪错功能 能点左边的叉号能自动添加继承接口的方法  同时继承这样的两个接口不能添加了  理论上来说不能实现这种功能
      

  9.   

    没法重载
    重载需要函数同名,参数不同(a,数据类型不同,b个数不同,c顺序不同)返回值类型不同
    关键的是前两个条件
    单单靠返回值类型是无法重载函数的
    不过java传参的时候,会根据实际情况进行一些类型转换
      

  10.   

    interface A {
         void m();
      }
      
      interface B {
         int m();
      }  class T implements A, B {
          void A.m() {}
          int B.m(){}     
      }调用
    T t = new T();
    A a = t;
    B b = t;
    a.m();
    b.m();你去看看对么
    C#里面这么写  叫显式接口
      

  11.   

    java不能这么写--------------------Configuration: <Default>--------------------
    C:\test.java:13: 需要 '('
         public void A.m() 
                      ^
    C:\test.java:13: 方法声明无效;需要返回类型
         public void A.m() 
                       ^
    C:\test.java:17: 需要 ';'
         public int B.m()
                     ^
    C:\test.java:17: 方法声明无效;需要返回类型
         public int B.m()
                      ^
    4 错误Process completed.
      

  12.   

    java不允许的,就算你能实现了调用的时候你知道调用的是哪个?
      

  13.   

    让IDE自动实现接口不就ok?哈哈!
      

  14.   

    违背java重载的原则了吧
    重新设计接口,呵呵
      

  15.   

    这个根本不行的,所谓重载是什么啊?自己看看就知道了。那两个根本不符合重载的定义啊,这两个方法编译的时候java虚拟机会认为是一个方法的,因为它们方法名相同而且参数也一样,所以通不过
      

  16.   

    不知道这样行不?
    interface A {
    void a();
    }interface B {
    int a();
    }class ProxyB implements B{
    A a;
    public int a() {
    return 0;
    }
    void aInA() {
    a.a();
    }
    }
      

  17.   

    class ABImpl {
        public final A AImpl = new A() {
            public void m() {}
        }    public final B BImpl = new B() {
            public int m() {}
        }
    }使用的时候,可以创建一个ABImpl的实例ab,然后调用ab.AImple.m()和ab.BImple.m()。
    也可以根据逻辑或者开发上的需要,写成如下形式:class ABImpl implements A {
        public void m() {}    public final B BImpl = new B() {
            public int m() {}
        }
    }这样,可以用ab.m()和ab.BImpl.m()。