为了账号安全,请及时绑定邮箱和手机立即绑定

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

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


正在回答

4 回答

代码一:
Animal dog = new Dog();
Animal animal = dog;


代码二
Animal animal = new Dog();


代码一与代码二结果一样,区别在于代码一可以使用强转,代码二用的JAVA的多态性


0 回复 有任何疑惑可以回复我~

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


1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

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

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

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

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

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

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信