标题:对象强制转换问题
只看楼主
dingoo
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2006-10-10
 问题点数:0 回复次数:18 
对象强制转换问题

大类型如何转换成小类型?
如:
class A{
int a;
public void f(){}
}
class B extends A{
String s;
public void g(){}
}
现创建一个对象:A aa = new A();
然后在程序中我想把aa转换成B类型,用什么方法转换??

搜索更多相关主题的帖子: 对象 
2007-04-05 10:21
喃瑟
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2007-1-25
得分:0 
(String)a

光与影的1/2
2007-04-05 10:32
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
加个括号就可以了

可惜不是你,陪我到最后
2007-04-05 10:33
dingoo
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2006-10-10
得分:0 
没用啊,运行时会出现ClassCastException这个异常!

2007-04-05 10:48
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 

A a = new A();
B b;
b=(B)a;这样应该可以吧

[此贴子已经被作者于2007-4-5 10:52:06编辑过]

2007-04-05 10:51
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
最好加一个instance of

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-04-05 10:56
dingoo
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2006-10-10
得分:0 
instance of怎么用?不会用啊....

2007-04-05 11:05
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
if (name instanceof type)
{
type new_name = (type) name;

}

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-04-05 11:31
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用dingoo在2007-4-5 10:21:04的发言:

大类型如何转换成小类型?
如:
class A{
int a;
public void f(){}
}
class B extends A{
String s;
public void g(){}
}
现创建一个对象:A aa = new A();
然后在程序中我想把aa转换成B类型,用什么方法转换??

呵呵,你是想把A转成B,那当然会出异常了

向上转型是安全的,向下就不安全了,就很有可能会出现ClassCastException


可惜不是你,陪我到最后
2007-04-05 12:05
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
得分:0 
至于他的那个转换。。我可不可以这样啊

B bb=new B();
aa==bb;
2007-04-05 13:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-129380-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.578257 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved