Java除了数字类型的自动隐式类型转换,对类有类似功能么?

Python018

Java除了数字类型的自动隐式类型转换,对类有类似功能么?,第1张

在 Java 中,除了数字类型自动隐式类型转换之外,类之间也可以进行自动类型转换。

如果一个类型的对象实现了另一个类型的接口,或者一个类型的对象是另一个类型的子类,那么就可以将前者自动转换为后者的类型。

例如,假设有两个类 A 和 B,其中 A 是 B 的子类。那么可以将 A 类型的对象自动转换为 B 类型,如下所示:

A a = new A()

B b = a // 自动类型转换

这种自动类型转换的机制在 Java 中称为多态(Polymorphism)。

1、小的类型自动转化为大的类型

2、整数类型可以自动转化为浮点类型,可能会产生舍入误差

3、字符可以自动提升为整数,自动转换类型不需要在前面加类型,那是强制转换。

1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

2)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。

a.若两种类型的字节数不同,转换成字节数高的类型

b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型

3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

4)char型和short型参与运算时,必须先转换成int型。

5)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。