日期:2014-05-20 浏览次数:21088 次
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();
    }
}
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();
    }
}
------解决方案--------------------
楼上你懂了~~呵呵
------解决方案--------------------
最简单的方法,把C作为抽象类,让A,B都继承自C
------解决方案--------------------
抽象类  接口  其实都差不多~~~感觉两者之间使用是反映了编程的思想~~
------解决方案--------------------
不建议你这样做哦~~
 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();
             
         }
         
     }
------解决方案--------------------
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("");
    }
}