upcasting和包装类

时间:2010-03-27 05:33:05

标签: java types

为什么原始数据类型可以升级,而不能用相应的包装类完成?

4 个答案:

答案 0 :(得分:4)

原始数据类型对应于数据存储在内存中的特定方式。例如,doubleint在内存中的存储方式非常不同,从doubleint的向上广播涉及更改用于存储该数据的策略(从存储小数信息的版本到不存在的版本。

向上转换包装类是另一种向上转换。在这种情况下,您正在更改包装类被视为的类型。要继续该示例,IntegerDouble包装类是Number的子类,两个包装器都可以向上转换为。但是,Double不是Integer的子类。相反,他们是兄弟姐妹(也就是说,都延伸Number)。因此,您无法从Double转发到Integer

答案 1 :(得分:3)

因为ByteInteger都不会继承LongFloat不会继承Double

答案 2 :(得分:2)

虽然语法相同,但是投射基元与投射引用完全不同。

答案 3 :(得分:0)

因为Long不从Integer扩展,例如。他们都可以被投射到数字......