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) 说的对。