大家一起来讨论一下java语言的自动转换与强制转换机制是如何的呢?

解决方案 »

  1.   

    刚学JAVA,JAVA中有自动转换类型?
      

  2.   

    有高到低可以自动转换(double到int、String到Object)
    由低到高必须强制转换(int到double、Object到String)
      

  3.   

    http://blog.csdn.net/Mailbomb/archive/2008/05/15/2449261.aspx
    Java编程那些事儿19—数据类型转换
      

  4.   

    由低到高是隐式转换,不需要强转
    如:
    class A{
    }
    class B extends A{
    }
    A b = new B();//这种是隐式转换
    由高到低需要强转
    B a = (B)new A();//这种是强制转换,当需要强制转换时,你需要明确的知道你产生的对象的类型,以便保证能够正确强制转换并且不会丢失数据
      

  5.   

    有高到低可以自动转换(double到int、String到Object) 
    由低到高必须强制转换(int到double、Object到String)
    举个例子:父类: class 人 ;
     子类: class 男人 extends class 人 ;这两个类
     人  ren  = new 人();
     男人 nanren = new 男人(); ren=nanren 这个就自动转换,因为 男人 一定是 人
     nanren = ren 这个要强制转换 因为 人 不一定是 男人   还有可能是女人
     
      

  6.   

    B a = (B) new A();可以这样转换吗?  
      

  7.   

    他是JAVA的自动装箱和拆箱功能,要用的时候一般与造型一起用.
      

  8.   

    如果是数值之间的.比如说像int float之类, 由小到大,可以自动转换,比如说double a=1;这时会发生自动转换;
    从大到小,当有可能会发生精度丢失的时候,需要强制转换,比如说int a=(int)(3.14f);
    对象类型也是一样,由高到低时 需要强转,低到高时会自动转,
    比如说String吧,由于String是Object类的子类.所以可以把String直接赋值给Object 但是反过来则需要强转!