Animal animal =(Animal) Class.forName(className).newInstance();
Animal为接口  求(Animal) Class.forName(className).newInstance()的意思

解决方案 »

  1.   

    答装载className到内存,并做类的初始化,然后调用className的默认构造器,生成一个className类的对象再强转成Animal类型,并将其引用赋值给animal引用变量.
      

  2.   

    请问 强转成Animal类型 是不是向下转型 Class 和 类之间存在继承关系吗 怎么理解
      

  3.   

    请问 强转成Animal类型 是不是向下转型 Class 和 类之间存在继承关系吗 怎么理解
      

  4.   

    如Cat继承自Animal,先创建一个Cat的实例,然后将其向上转换为Animal
      

  5.   

    这里不存在什么下转型和继承关系,Class.forName(String className) ,返回与带有给定字符串名的类或接口相关联的 Class 对象,是newInstance(),创建此 Class 对象所表示的类的一个新实例。到目前为止的操作简单的说就是利用Class类创建了一个指定对象,newInstance()返回的是一个Object对象,你要用它,当然就要强制转换,如查你将其强制转换成String,String animal =(String) Class.forName(className).newInstance(); 也是可以的,编绎可以通过,但是运行的时候要抛出异常