日期:2014-05-20  浏览次数:20656 次

关于一个接口多个实现类问题
一个接口他有多个实现类。现在引用这个接口,如何确定当前引用的这个接口的实现类是那个???

------解决方案--------------------
接口类 对象 = new 实现类();

想用哪个用哪个啊。。。
------解决方案--------------------
1 既然你使用接口,就是不关系具体的实现类,这才是接口的优势啊!
2 接口使用方,不可能知道会有多少实现了这个接口的类
3 如果你只是想知道类名,那么getClass()可以满足你。
------解决方案--------------------
使用Instance of判断
------解决方案--------------------
Java code

//通过传入的对象获得类名
public String getClassName(Object obj){
      return obj.getClass().getName();
}

------解决方案--------------------
interface Test{
public void print();//定义方法
}

class A implements Test{
public void print(){
System.out.println("Sub Class A");
}
}

class B implements Test{
public void print(){
System.out.println("Sub Class B");
}
}

public class TestClass{
public static void main(){

Test test = new A();
test.print();//Sub Class A

Test test = new B();
test.print();//Sub Class B

}


------解决方案--------------------
引用楼主 lcb530 的帖子:
一个接口他有多个实现类。现在引用这个接口,如何确定当前引用的这个接口的实现类是那个???