问答详情
源自:1-1 Class类的使用

求解释,菜鸟求大神解释

为什么要Foo类型转换呢 ?本来c1.newInstance()就是Foo类的对象,那么Foo foo不也是Foo的吗 都一样的类型为什么要转换呢 ?求大神解释啊@

提问者:帅D一B 2014-11-26 11:10

个回答

  • 特地学java
    2016-03-03 16:55:20

    我理解是这个会根据c1属于不同的类型,那么c1.newInstance()就会实例化出相应的类型,也就是说其实是无法确定的类型,加上类型转换就是告诉它要转化成相应类型,

    就像Object一样,他算是很多东西的祖宗,可以代表各种东西。你写 Object f1=new Foo();同样不会报错,但是当某个东西返回的是Object格式,哪怕你知道返回来的是Foo类型,同样需要类型转换来接收它。比如

    Foo f2=(Foo)new Object();这里必须加上(Foo)这个类型转化。

  • 帅D一B
    2014-11-26 11:40:59

    哦哦 第二句说的是错的啊 !感谢大神!哎,基础差就是不行啊

  • 偌颜宁
    2014-11-26 11:38:19

    c1的类型是Class不是Foo