什么是对象类型转换?

qq1871343189 2011-10-07 10:02:56
JAVA语言中,什么是对象类型的转换?(我知道有向上转型和向下转型,但到底什么是什么我还是不清楚)。

使用对象类型转换有什么作用?

在什么时候需要用到对象类型转换?可不可以不用或者有没有更好的方法替代类型转换?

请各位指导一下,谢谢啦
...全文
345 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq1871343189 2011-10-08
  • 打赏
  • 举报
回复
谢谢各位!
  • 打赏
  • 举报
回复
楼主可能还没得理解多态吧
  • 打赏
  • 举报
回复
我认为主要的作用 是 多态吧。
jc8futao 2011-10-08
  • 打赏
  • 举报
回复 1
因为java是强类型语言。所有的操作都是在特定类型上进行的。有的时候你获取的对象实例可能是一个对象的父类,并不包含你所需要的方法,但是子类里面却包含这个方法。这时候需要将父类强制转换为子类。再就是一些基本数值类型的数据。比如你的方法里面接受一个int型的参数,但是你手里的数字确是一个long型的。就需要强制转换一下,牺牲一些精度,可能造成数字的截断。
wanhuijie1991 2011-10-08
  • 打赏
  • 举报
回复
强制转换主要是为安全性考虑
feifeikub 2011-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cqltwslt 的回复:]
楼上已经说的很明白了,对象类型转换带来的好处便是:
增强了程序的可扩展性
[/Quote]
顶一个
ydj552110737 2011-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qybao 的回复:]

简单地说
Java code
class A {

}

class B extends A {

}


public class Test {
public void main(String[] args) {
A a = new A(); //a是A类型的变量,它引用一个A对象
B b = new B(); //b是B类型的变量,它引用一个B对象
……
[/Quote]


正解
changtianshuiyue 2011-10-08
  • 打赏
  • 举报
回复
不愧是大神啊
小绵羊 2011-10-07
  • 打赏
  • 举报
回复
String str = "abc";

Object obj = str;//向上转型

String str1 = (String)obj;//向下转型

顶阿宝一个
qybao 2011-10-07
  • 打赏
  • 举报
回复
简单地说
class A {

}

class B extends A {

}

public class Test {
public void main(String[] args) {
A a = new A(); //a是A类型的变量,它引用一个A对象
B b = new B(); //b是B类型的变量,它引用一个B对象
A aa = b; //这里是向上转换,aa是A类型的变量,b是B类型的变量,
//把b所引用的B类型的对象转换成A类型的对象,然后让aa引用这个对象

B bb = (B)aa; //这里是向下转换,bb是B类型的变量,aa是A类型的变量
//把aa所引用的A类型的对象转换成B类型的对象,然后让bb引用这个对象
}
}
向上转换和向下转换的区别就是,向上转换不需要强行转换(JVM自动隐式转换),也不会出错,因为父类对象的空间比子类对象的空间小,所以把子类转换成父类不会造成内存访问的危险,而反过来,父类转换成子类,因为父类对象的空间理论上比子类对象的空间小(父类对象的实际内存空间可能和子类一样,也就是父类引用子类对象的情况),所以会造成内存访问的危险,所以要自己强行转换(手动显式转换),也就是用户自己确保安全以后自己转换,如果实际的父类对象的空间不符合子类对象的空间(也就是转成子类所需要的空间超出了父类对象的实际内存空间,造成内存访问越界),那么就会转换失败,JVM会抛出异常
canon99 2011-10-07
  • 打赏
  • 举报
回复
动物 鸟 鹦鹉 鹦鹉转换鸟,或者鹦鹉转换动物,或者鸟转换动物,此类转换为向上转换。就是有低级转高级
对象类型转换运用 比如说 在控制台以字符串(String)接收"1.231",此时你想把"1.231"变为数值型是就要使用转换Integer.parseInt();
  • 打赏
  • 举报
回复
TKD03072010 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qybao 的回复:]

简单地说
Java code
class A {

}

class B extends A {

}

public class Test {
public void main(String[] args) {
A a = new A(); //a是A类型的变量,它引用一个A对象
B b = new B(); //b是B类型的变量,它引用一个B对象
……
[/Quote]
阿宝前辈 真给力
顶一个
cqltwslt 2011-10-07
  • 打赏
  • 举报
回复
楼上已经说的很明白了,对象类型转换带来的好处便是:
增强了程序的可扩展性

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧