你的test2被打包了,Object obj=Class.forName("Test2").newInstance();应该加上包名吧。 
 System.out.println(obj.a); 
obj是一个Object类的引用,Object中式没有.a的成员数据的,换句话,使用中虽然有a,但a对父类object来说是不可见的。所以你需要强制类型转化。可是这里你也 不能这样写。 
 Class.forName("Test2").newInstance();返回的是字节码,如果你硬要当成object来使用,那是可以的。但最好换成 
类名 obj=Class.forName("类名").newInstance(); 
这样应该就可以了。 
我觉得强制类型转化应该放在这个对象的时候   类名 obj =Class.forName 。 |