class a
{ ... }
class b extends a
{...}
class c
{
public static void main(string args[])
{
a a1,a2
b b1,b2
a1=new a();
b1=new b();
a2=(a)b1;//这句话是什么意思?
b2=(b)a2;//这句话是什么意思?
}
}
{ ... }
class b extends a
{...}
class c
{
public static void main(string args[])
{
a a1,a2
b b1,b2
a1=new a();
b1=new b();
a2=(a)b1;//这句话是什么意思?
b2=(b)a2;//这句话是什么意思?
}
}
解决方案 »
- try catch finally 语句块,什么情况finally里的语句不会执行?
- Java中有没有类似于C#中"MessageBox"的类阿?
- addLabelTextRows中干啥用的?
- oracle.sql.BLOB存储图片....
- 如何取得汉字拼音的首字母??
- 救命!一定重谢!!!
- thinking in java 第四版 中 类型信息一章P322
- 怎样修改*.jar文件,使之成为一个双击后可以运行的应用程序
- java 连接oracle的问题,来看看错误!
- [求助]怎么样传递参数给java虚拟机?
- Java使用LDAP协议验证用户登录的问题
- 关于java中参数使用(String... name1)中的参数有什么特别的用处吗?
楼主【zhang2008267】截止到2008-07-05 11:12:37的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
b2=(b)a2;
这是什么写法啊 书上没讲过
b2=(b)a2;//将a类型强制转换成b类型,
a2=(a)b1;//向上转型
b2=(b)a2;//向下转型
说白了就是强制类型转换的感觉
这样写:
a a2=new b();
b2=(b)a2;
b2=(b)a2;//将a类型强制转换成b类型,
a2=(a)b1是向上转换(用父类的引用指向子类的对象),所以不会有错。其实向上转换用不着强制直接a2=b1;就可以了
b2=(b)a2是向下强制转换,这个时候必须要强制了。上面说会出错,其实不会,因为a2指向的对象本身就是b的对象!!
b2=(b)a2;//向下转型
b1=new b(); //同上面一样。
a2=(a)b1; //将a类型的引用a2指向new b()产生的b类实例,由于b是a的子类,父类引用指向子类对象是没有问题的。
b2=(b)a2; //将b2指向a2所指向的内存,也就是new b()产生的对象,同样也没有任何错误。
right answer.