java中各数据类型是如何实现强制类型转换的?

Python018

java中各数据类型是如何实现强制类型转换的?,第1张

转型有两种:

向上转型和向下转型(强制转型)

两种分别如下:

一种是向上转型对于基础数据类型

,

可以自动转型

,比如:int

a

=

10long

b

=

a这里就是把int型转成了long型

,

因为

long范围比int大

,

这样的转型不会有任何影响

,

所以可以自动转型

又比如

A

a

=

new

B()

其中

A

是B

的父类

,

这也是多态

,

就是父类的对象指向子类的引用

,

你调用a对象

,

实际上是B的类

,

但是B继承A

,

拥有A的一切属性和方法

(不谈复写)

</ol>第二种是向下转型

,

也就是强制这种需要强转

,

比如long

a

=

10

int

b

=

(int)

a通过

(int)可以强制转型

,

但是这样会丢失精度

,

比如a如果超过了b的范围

,

那么强转成int型,

只会等于int的最大值又比如

:B

b

=

new

A()

这样是不行的

,

需要有中间途径

,

比如A

a

=

new

A()

Object

obj

=

a

B

b

=

(A)

a而这种强转

,

又有要求

,

必须是同类型

,

也就是说

A

就是B

,

不然会报错.</ol>不同类型之间如果要转型

,

需要通过中间途径

,

比如JSON

,

将A转成JSON串

,

然后再转换为B

</ol></ol>

自动转换和强制转换我知道的有两种情况:基本数据类型

类。

先说基本数据类型:因为java是强类型语言,由强类型向弱类型转换需要强制转换,而由弱类型向强类型转换则系统自动转换。比如:double

类型相比int类型是属于强类型,则由double类型的数据向int类型数据转换就需要强制转换,反之则自动转换。另外八大基本数据类型的强弱关系如下:byte

评论

0

0

加载更多