Topic: 关于对象间类型转换的问题,实在是没办法了自己大概钻牛角间了 |
Print this page |
1.关于对象间类型转换的问题,实在是没办法了自己大概钻牛角间了 | Copy to clipboard |
Posted by: balbeleet Posted on: 2006-07-21 12:20 class A { String s="class A"; } class B extends A { String s="class B"; } class TV { public static void main(String args[]) { B bb,b=new B(); A a,aa; a=(A)b; //显示转换 aa=b; //隐式转换 System.out.println(a.s); System.out.println(aa.s); bb=(B)a; //显示转换 System.out.println(bb.s); } } 计算结果是: class A class A class B 为什么不是 class B class B class A 呢 这里a=(A)b不是把 类b的引用(内存地址)赋值给a么 怎么理解? 下面的aa=b; bb=(B)a; 应该是同理吧! |
2.Re:关于对象间类型转换的问题,实在是没办法了自己大概钻牛角间了 [Re: balbeleet] | Copy to clipboard |
Posted by: blueshoot Posted on: 2006-07-22 10:19 对于你所定义的A类和B类,首先,B类是A类的子类,所以,a=(A)b,将b对象的地址赋值给a对象,而a对象是A类(B类的父类)的实例,那么a对象只能看见属于A类而不属于B类部分的对象成员,也就是String s="class A",总的来说,只要你理解了B类的成员有2个:String s="class A";String s="class B";这个问题就很好理解了 |
3.Re:关于对象间类型转换的问题,实在是没办法了自己大概钻牛角间了 [Re: balbeleet] | Copy to clipboard |
Posted by: balbeleet Posted on: 2006-07-24 21:27 谢谢你,这个问题真的是想了好几天了.你说的很清晰很易懂 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |