引用多态的父类引用可以指向子类的对象,如Animal obj2=new Dog();,和向上类型转换,如Animal animal=dog;,怎么区别?

来源:10-2 多态中的引用类型转换

lucky_qi

2016-05-13 21:04

引用多态与类型转换的区别


写回答 关注

4回答

  • 枫中看雨
    2016-07-27 13:01:37
    代码一:
    Animal dog = new Dog();
    Animal animal = dog;
    
    
    代码二
    Animal animal = new Dog();
    
    
    代码一与代码二结果一样,区别在于代码一可以使用强转,代码二用的JAVA的多态性


  • 慕婉清0098339
    2016-05-24 22:53:31

    Animal obj2=new Dog(); 这其实也是向上转型,Dog是Animal的子类,Animai是Dog的父类


  • 流逝的回忆已成空白
    2016-05-18 11:06:13

    这个跟数据类型转换差不多、int 转 double 可以、但 double 转 int 是不可以直接转换的、需要强制转换、理解偶读是一样的、

  • 一只胖子唉
    2016-05-13 21:48:07

    我也是初学者,三天前才开始看教程,我说下我的理解,你可以参考一下,不保证正确

    多态就是指一个对象的多种状态,如,一条狗,你可以说它是一只动物,也可以说它是一只生物,狗、动物、生物都可以形容它,表示狗有以上三种(描叙)形态

    再如,柏树,也可以说它是一种植物,一种生物,也是数的三种形态

    向上级转换:一只狗可以说它是一只动物,一只生物

    向下级转换:拿狗举列,生物 花狗=new 狗();定义了一只狗,但是它的类型是生物,虽然他是用狗()来实例化的,现在问题出来了,向下级转换是有风险的,你需要判断它到底是 什么类里的才可以转换为那个类,我们实例化的花狗(定义类型是生物)可以转换为动物、狗类型,但是不能转换为植物、柏树类型

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题