日期:2014-05-20 浏览次数:20861 次
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(""); } }