下边是一段示例代码,不知道可不可以把C类中的两个方法合成一个方法呢?class A {
    private String name;
    public String getName();
    ……
}
class B {
    private String name;
    public String getName();
    ……
}
class C {
    public String getUserName (A a) {
        return a.getName();
    }
    public String getUserName(B b) {
        return b.getName();
    }
}

解决方案 »

  1.   

    让 A  B 都去继承一个借口~~~
    借口里定义一个方法叫 getName
    然后 C 调用 接口的 getName
      

  2.   


    interface I{
      String getName();
    }class A implements I{
        private String name;
        public String getName();
        ……
    }
    class B implements I{
        private String name;
        public String getName();
        ……
    }
    class C {
        public String getUserName (I i) {
            return i.getName();
        }
    }
    楼上的思路是这样吧。
      

  3.   

    最简单的方法,把C作为抽象类,让A,B都继承自C
      

  4.   

    谢谢各位,这种方法我知道,这个只是我举得例子而已,A和B我是没有办法修改的,而且他们还在不同的jar包里!~
      

  5.   

    不建议你这样做哦~~
     public static String getUserName(Object o){
     try{
     A a=(A)o;
     return a.getName();
     }catch(Exception e){
     B b=(B)o;//这里应该才TRY CATCH 一下
     return b.getName();
     
     }
     
     }
      

  6.   


    class A {
    public String getName() {
    return "A";
    }
    }class B {
    public String getName() {
    return "B";
    }
    }class C {
    public String getName(Object o) throws Exception {
    if (o instanceof A) {
    return ((A) o).getName();
    } if (o instanceof B) {
    return ((B) o).getName();
    } throw new Exception("");
    }
    }
      

  7.   

    谢谢各位,我刚才去看了一下api,他们有实现一个同一个接口