JAVA语言中,什么是对象类型的转换?(我知道有向上转型和向下转型,但到底什么是什么我还是不清楚)。  
  
 使用对象类型转换有什么作用? 在什么时候需要用到对象类型转换?可不可以不用或者有没有更好的方法替代类型转换?请各位指导一下,谢谢啦

解决方案 »

  1.   

    动物 鸟 鹦鹉      鹦鹉转换鸟,或者鹦鹉转换动物,或者鸟转换动物,此类转换为向上转换。就是有低级转高级
    对象类型转换运用 比如说 在控制台以字符串(String)接收"1.231",此时你想把"1.231"变为数值型是就要使用转换Integer.parseInt();
      

  2.   

    简单地说
    class A {}class B extends A {}public class Test {
        public void main(String[] args) {
            A a = new A(); //a是A类型的变量,它引用一个A对象
            B b = new B(); //b是B类型的变量,它引用一个B对象
            A aa = b; //这里是向上转换,aa是A类型的变量,b是B类型的变量,
                        //把b所引用的B类型的对象转换成A类型的对象,然后让aa引用这个对象         B bb = (B)aa; //这里是向下转换,bb是B类型的变量,aa是A类型的变量
                             //把aa所引用的A类型的对象转换成B类型的对象,然后让bb引用这个对象
        }
    }向上转换和向下转换的区别就是,向上转换不需要强行转换(JVM自动隐式转换),也不会出错,因为父类对象的空间比子类对象的空间小,所以把子类转换成父类不会造成内存访问的危险,而反过来,父类转换成子类,因为父类对象的空间理论上比子类对象的空间小(父类对象的实际内存空间可能和子类一样,也就是父类引用子类对象的情况),所以会造成内存访问的危险,所以要自己强行转换(手动显式转换),也就是用户自己确保安全以后自己转换,如果实际的父类对象的空间不符合子类对象的空间(也就是转成子类所需要的空间超出了父类对象的实际内存空间,造成内存访问越界),那么就会转换失败,JVM会抛出异常
      

  3.   

    String str = "abc";Object obj = str;//向上转型String str1 = (String)obj;//向下转型顶阿宝一个
      

  4.   

    因为java是强类型语言。所有的操作都是在特定类型上进行的。有的时候你获取的对象实例可能是一个对象的父类,并不包含你所需要的方法,但是子类里面却包含这个方法。这时候需要将父类强制转换为子类。再就是一些基本数值类型的数据。比如你的方法里面接受一个int型的参数,但是你手里的数字确是一个long型的。就需要强制转换一下,牺牲一些精度,可能造成数字的截断。