为什么要向上转型和向下转型,他们的功能是什么有什么作用?原理是什么?具体一点回答谢谢大佬们!

解决方案 »

  1.   

    http://blog.csdn.net/shanghui815/article/details/6088588
    网上搜搜,好多总结的都不错
      

  2.   

    比如一个是接口,一个是具体实现,具体实现有多个,向上造型,是为了我用接口可以选择不同的实现类的共有方法 比如 InterfaceA  a = new Tread  InterfaceA b = new Tmake
    a.toString();  b.toString(); 结果就不同,但是我只用了一个接口没有用到具体的实现类; 向下造型就是我需要具体的实现类的其他方法 是这个实现类独有的,而不是接口定义的
    Tread z = (Tread)a; z.read();  Tmake x = (Tmake)b; x.make();  代码只是为了举例,无实际意义.
      

  3.   

    向上转型:是子类往父类转换,可以Pet pet=new Dog(),自动转换.
    向下转型: 是父类往子类转换,如果强制转换会报错,则需要一条语句
    if(pet instanceof Dog){Dog dog=(Dog)pet
    }
      

  4.   

    向下转型也成自动转型是指:byte,short,char->int->long->float->double ,short可以向int long float double 转型,比如int  a = 3;  long b =a;就是向下转型。
    向上转型也成为强制转换,比如double a = 8.23 int b =(int) a; 因为这样会损失精度所以需要强制类型转换,按照顺序,左边的向右边转型是自动的,右边向左边是强制的,
    具体思想推荐你看《java编程思想》
      

  5.   

    给个很通俗易懂的说法你:
    向上转型是为了让参数类型统一,例如object类是所有类的父类,参数进行向上转型,将参数统一化,可以在很多方法调用的问题上变得简单;
    向下转型是是为了使用子类的个性化方法,因为子类可能会扩充新的方法,如果要调用此方法就要进行向下转型;
    PS:向下转型前要先进行向上转型