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