向上转型和向下转型的问题?

????_zzzz 2017-10-25 09:45:08
为什么要向上转型和向下转型,他们的功能是什么有什么作用?原理是什么?具体一点回答谢谢大佬们!
...全文
1754 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-07-25
  • 打赏
  • 举报
回复
没有为什么,你编程的时候,需要的类型和拿到的类型不一致,自然就要转,至于编译器是否允许你转,那是编译器的事,自己查规则。
码bug的小砖家 2018-02-18
  • 打赏
  • 举报
回复
给个很通俗易懂的说法你: 向上转型是为了让参数类型统一,例如object类是所有类的父类,参数进行向上转型,将参数统一化,可以在很多方法调用的问题上变得简单; 向下转型是是为了使用子类的个性化方法,因为子类可能会扩充新的方法,如果要调用此方法就要进行向下转型; PS:向下转型前要先进行向上转型
Lie_lei 2018-01-08
  • 打赏
  • 举报
回复
为什么要有上转型:因为要实现多态。为什么要有多态:因为要让代码简化,代码维护方便。比如说:你写一个猫类,狗类,老虎类,你描述他们的时候,发现他们都会叫,你不想每一个类中都去描述他们都会叫,所以你就写了一个动物类,写了一个动物都会叫的方法,你写那些动物都继承这个动物类,只要去实例这些动物类,给动物类去引用。猫类,狗类,老虎类,都有了会叫的特点。上转型时会丢失子类他有的属性和方法。 为什么要有下转型:因为要有始有终,你不能把这个东西永远变成另外一个东西,需要让他有自己的特点。比如说 猫是动物,你可以在特定的时候说这个动物他是猫,不能说明 所有的动物都是猫。比如上面猫类,猫有自己的特点啊,所以要有下转型,让它去实现自己的特点的方法呀。
zhangxiaomin19921 2018-01-08
  • 打赏
  • 举报
回复
向下转型也成自动转型是指: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编程思想》
qq_41393783 2017-12-14
  • 打赏
  • 举报
回复
向上转型:是子类往父类转换,可以Pet pet=new Dog(),自动转换. 向下转型: 是父类往子类转换,如果强制转换会报错,则需要一条语句 if(pet instanceof Dog){Dog dog=(Dog)pet }
zpf_zhan 2017-12-12
  • 打赏
  • 举报
回复
向上造型:父类的引用指向子类的对象。 向上造型可以大大提高程序的可扩展性。利于代码维护。 面向对象的三大特性:封装;继承;多态。向上造型可以看做多态的一种体现。即允许一种类型有不同的实现(可以理解为事物存在的多种体现形态)。
never_66 2017-10-25
  • 打赏
  • 举报
回复
比如一个是接口,一个是具体实现,具体实现有多个,向上造型,是为了我用接口可以选择不同的实现类的共有方法 比如 InterfaceA a = new Tread InterfaceA b = new Tmake a.toString(); b.toString(); 结果就不同,但是我只用了一个接口没有用到具体的实现类; 向下造型就是我需要具体的实现类的其他方法 是这个实现类独有的,而不是接口定义的 Tread z = (Tread)a; z.read(); Tmake x = (Tmake)b; x.make(); 代码只是为了举例,无实际意义.
自由自在_Yu 2017-10-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/shanghui815/article/details/6088588 网上搜搜,好多总结的都不错
科比请留步 2017-10-25
  • 打赏
  • 举报
回复
去看一看多态和面向接口编程的例子
jsonLxh 2017-10-25
  • 打赏
  • 举报
回复
......................多态

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧