Object object =  new Student();
  
  这是隐式向上转型,那执行完这句后,object到底是什么类的对象?是Student还是Object吗? 如还是Student,那这样转型有什么意义。如果是Object,那下面这样的向下转型不就会出错了吗?
 
 Object object =  new Student();
 Student student 1 = (Student) object;
初学者,求解释。

解决方案 »

  1.   

    是student,当然student也是object
    意义:松耦合
    呵呵,随着你的代码量的提升,这些问题都会越来越清楚
      

  2.   


      知道Object 是所有类的父类,这貌似和我的问题没什么联系
      

  3.   

    你应该去了解下java构造函数的调用,你就明白了,
    另外你那个向下转型时没错的,应该object指定了是从Student向上转型而来,
    如果不指定,就会出现编译错误
      

  4.   

    假如有一个父类Vehicle,它有一个方法speed()
    它下面有几个子类,分别是,Car,Train,Horse,都有一个speed()方法,
    那么就可以使用Vehicle v=new Car();
    通过v调用子类的speed()方法,这在设计上面是很有用的,可以抛开子类,直接与父类接触
    这在接口设计方面,尤其作用明显,总之这是为人类服务,不是为了机器服务
      

  5.   


    当new处理的Student传给object后,就等于告诉编译器把student当作object来做,究竟为什么这样你学了多态后就知道了。
    你外向下转型一般要先用instance of判断一下类型不然容易出错,当然使用范型就方便多了
      

  6.   

    看看tinging in java 吧 里面解释的很详细。