BaseIntf.java:
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*/
public interface BaseIntf {
public void printSelf();
}ClassRlz1.java:
package test.classtest;
/**
* @aixy
*/
public class ClassRlz1 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz1");
}}ClassRlz2.java:
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*
*/
public class ClassRlz2 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz2");
}}TestMain.java:
package test.classtest;
/**
* @author aixy *
*/
public class TestMain { public static void main(String[] args) {
String className = "test.classtest.ClassRlz2";
BaseIntf Cl = null;
try {
Object bi = null;
try {
bi = Class.forName(className).newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
System.out.println(bi.toString());
if (bi instanceof ClassRlz1) {
Cl = (ClassRlz1) bi;
} else if (bi instanceof ClassRlz2) {
Cl = (ClassRlz2) bi;
} else {
System.out.println("error");
}
} catch (ClassNotFoundException e) {
System.out.println("class not found");
}
Cl.printSelf();
}
}
执行结果:
test.classtest.ClassRlz2@3ac748
this is ClassRlz2xxisxx(xx) 说的对。
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*/
public interface BaseIntf {
public void printSelf();
}ClassRlz1.java:
package test.classtest;
/**
* @aixy
*/
public class ClassRlz1 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz1");
}}ClassRlz2.java:
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*
*/
public class ClassRlz2 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz2");
}}TestMain.java:
package test.classtest;
/**
* @author aixy *
*/
public class TestMain { public static void main(String[] args) {
String className = "test.classtest.ClassRlz2";
BaseIntf Cl = null;
try {
Object bi = null;
try {
bi = Class.forName(className).newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
System.out.println(bi.toString());
if (bi instanceof ClassRlz1) {
Cl = (ClassRlz1) bi;
} else if (bi instanceof ClassRlz2) {
Cl = (ClassRlz2) bi;
} else {
System.out.println("error");
}
} catch (ClassNotFoundException e) {
System.out.println("class not found");
}
Cl.printSelf();
}
}
执行结果:
test.classtest.ClassRlz2@3ac748
this is ClassRlz2xxisxx(xx) 说的对。
这里比较全,要注册一下。