这里p0为什么等于p1,p1为什么不等于p2.求大神详细解释!
这里不是逻辑运算,而是赋值运算。根据Java语言规范,在赋值上下文中表达式的类型必须转为变量类型,关于引用类型就两种情况,子类转父类,父类转子类,分别叫做拓宽引用类型转换和窄化引用类型转换,其中窄化转换需要显示的说明,否则报编译时错误。
p0=p1,子类到父类,隐式转换
p1=p2,它们之间不存在泛化关系,不能相互赋值
跑一下代码 在各个类构造函数里输出 对比
这是赋值运算,引用类型转换!小转大可以隐式,大转小必须强制,无泛化关系,不能相互转换!