为什么原始数据类型可以升级,而不能用相应的包装类完成?
答案 0 :(得分:4)
原始数据类型对应于数据存储在内存中的特定方式。例如,double
和int
在内存中的存储方式非常不同,从double
到int
的向上广播涉及更改用于存储该数据的策略(从存储小数信息的版本到不存在的版本。
向上转换包装类是另一种向上转换。在这种情况下,您正在更改包装类被视为的类型。要继续该示例,Integer
和Double
包装类是Number
的子类,两个包装器都可以向上转换为。但是,Double
不是Integer
的子类。相反,他们是兄弟姐妹(也就是说,都延伸Number
)。因此,您无法从Double
转发到Integer
。
答案 1 :(得分:3)
因为Byte
和Integer
都不会继承Long
,Float
不会继承Double
。
答案 2 :(得分:2)
虽然语法相同,但是投射基元与投射引用完全不同。
答案 3 :(得分:0)
因为Long不从Integer扩展,例如。他们都可以被投射到数字......