下边是一段示例代码,不知道可不可以把C类中的两个方法合成一个方法呢?
- Java code
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(); }}
------解决方案--------------------
让 A B 都去继承一个借口~~~
借口里定义一个方法叫 getName
然后 C 调用 接口的 getName
------解决方案--------------------
- Java code
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
------解决方案--------------------
抽象类 接口 其实都差不多~~~感觉两者之间使用是反映了编程的思想~~
------解决方案--------------------
不建议你这样做哦~~
- Java code
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(); } }
------解决方案--------------------
- Java code
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(""); }}