java中每个类都是都是Object类的子类,当一个对象转换成Object后,这个对象的信息是不是会丢失呢?,还是java中有一些可以保存被装换对象的原有信息,不然当这个对象被转换回来的时候岂不是要失去信息!小弟跪求!

解决方案 »

  1.   

    不会丢失,只不过现在只能调用Object中的方法了
      

  2.   

    1.没明白lz 对象转换成Object 要干么
    2.不会丢失
    可以写代码试一下。
      

  3.   

    答:
    Object为老祖宗类,任何类向它转换都不会丢失数据,这是向上转型;如果是向下转型则可能会丢失精度,比如float转double。
      

  4.   

    String s="这是一个字符串";
    Object o=(Object)s;//向上转型,此时o指向了堆中的“这是一个字符串”对象,但是不可以借助o来使用String的方法
    System.out.println(o.getClass());//o.charAt(0)是错误的
    s=(String)o;//s继续指向堆中的“这是一个字符串”对象,和一开始是相同的
    System.out.println(s.charAt(0));
      

  5.   

    不会丢失的,只是引用变成Object类的了,但是实际的对象还是原来的,对象在堆内存中是永远不会变的。
    但是当你转换后要调用方法的话,就只能调用Object类有的方法了,而不能调用原来类中定义的Object类没有的方法。
    当你再转换回来的时候,就有可以了。
    一点儿都没有变...
      

  6.   

    在java中任何类型转换为object都不会掉的,这是上型转换,如是是object转换为它下面的一个那任何一个类的时候都是不安全的,这个是下型转换.因为越是向上转换这个类就是越通用,越是向下那这个类就越具体!所以上型转换是安全的!下型转换不安全!
      

  7.   


    相信LZ理解多态的时候就会很明白了~~祝LZ好运~
      

  8.   

    向上转型(如:String->Object)永远是安全的,
    向下转型(如:Object->String)不一定安全
      

  9.   

        说实话,这个东西不是一下子就可以理解的,你需要慢慢的去体验(就是不断的写程序)    这个问题就是java的多态性了。首先你应该知道,对象的类型只是用于指明我定义的这个变量到底能储存哪些类型,而不是说我定义成什么类型,我储存的变量就一定严格的是这个类型。    当定义了一个Object的对象变量后,这个变量现在能储存任何的java类型了,但并不是说我储存了一个具体的变量以后,这个变量就变成Object类型了。只是由于这个变量是储存在Object类型中,所以它只能使用从Object继承的属性和方法,但如果你将其强制转换为它自己原本的类型,你会发现它又可以使用属于自己的属性和方法了。    所以,储存在Object中的对象还是保留着自己的类型信息的,只是暂时没有表现出来,必须强制转化为它自己的类型以后才可以。     希望我的说明对你可以由一些帮助!
      

  10.   

    在java中任何类型转换为object都不会掉的,这是上型转换,如是是object转换为它下面的一个那任何一个类的时候都是不安全的,这个是下型转换.因为越是向上转换这个类就是越通用,越是向下那这个类就越具体!所以上型转换是安全的!下型转换不安全!——————————————————————————Mark了!!
      

  11.   

    任何类转换为object类都不是不丢失的,这是由子类转换为父类的类型转换,可以用java的继承的知识点理解 而且转换是把一个object类的引用指向这个被转换对象的值,该对象的值没有被改变所以不会丢失