向上转型和向下转型(强制转型)
两种分别如下:
一种是向上转型对于基础数据类型
,
可以自动转型
,比如: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>
可以转换,在平时写代码的时候经常会用到string和int数据类型的转换,由于java和python在string和int数据类型转换的时候是不一样的。
在 java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换。
String str = "123"try { int a = Integer.parseInt(str)
} catch (NumberFormatException e) {
e.printStackTrace()
}
String str = "123"try { int b = Integer.valueOf(str).intValue()
} catch (NumberFormatException e) {
e.printStackTrace()
}
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。