java 多态向下转型问题

img

img


第一张照片:因为objpri的运行对象是integer所以只能向下转型为integer我理解。
第二张照片:请问d的编译和运行对象都是double吗?假设都是,为什么可以将一个运行对象是double的d向下转型成long类型呢?

这个是java基本数据类型转换的问题,低精度的数据类型可以自动转换成高精度的,比如:byte b = 12;int i = b;这样是可以的,高精度数据类型转低精度则需要强转