Class c=Class.forName("com.dog");
c.newInstance();
文档描述为 创建此Class 对象所表示的类的一个新实例。他返回的按理说应该是一个具体的dog类 为何返回的是一个Object类型 
请教是怎么执行的返回Object

解决方案 »

  1.   

    因为你是根据一个字符串动态的生成一个类实例,JVM哪知道你生成的是哪个类呀,所以是Object
    至于怎么执行的,推荐你去看看JAVA的反射机制
      

  2.   

    没入题啊 他返回的按理说应该是一个具体的dog类 为何返回的是一个Object类型 
    请教是怎么执行的返回Object

    很想知道 请教啊 
      

  3.   

    java中有一个类叫Class,他说的意思是返回的是Class类的一个对象。
      

  4.   

    newInstance是sun公司老早定义好的一个函数
    你认为sun公司会这样定义这个函数ma
    public Dog newInstance(){....}
    是不是很荒唐?sun不知道你会创建什么类型,所以它选择所有类型的父类Object作为返回类型
      

  5.   

    想转成Dog类的话,可以强制转换
    Class c=Class.forName("com.dog"); 
    Dog d = (Dog)c.newInstance();