首页 新闻 会员 周边

如图,Java OOP中的一道简单题,大神进,15豆子拿走!

0
悬赏园豆:15 [已解决问题] 解决于 2017-02-25 12:57

这里p0为什么等于p1,p1为什么不等于p2.求大神详细解释!

弃用博客的主页 弃用博客 | 初学一级 | 园豆:102
提问于:2017-02-24 23:37
< >
分享
最佳答案
1

这里不是逻辑运算,而是赋值运算。根据Java语言规范,在赋值上下文中表达式的类型必须转为变量类型,关于引用类型就两种情况,子类转父类,父类转子类,分别叫做拓宽引用类型转换和窄化引用类型转换,其中窄化转换需要显示的说明,否则报编译时错误。

p0=p1,子类到父类,隐式转换

p1=p2,它们之间不存在泛化关系,不能相互赋值

收获园豆:15
创心coder | 小虾三级 |园豆:736 | 2017-02-25 07:24
其他回答(2)
0

跑一下代码  在各个类构造函数里输出 对比

andlp | 园豆:204 (菜鸟二级) | 2017-02-24 23:44
0

这是赋值运算,引用类型转换!小转大可以隐式,大转小必须强制,无泛化关系,不能相互转换!

Attitude~altitude | 园豆:202 (菜鸟二级) | 2017-02-25 10:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册