A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© weity 中级黑马   /  2014-8-13 09:01  /  1605 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有下面一段代码:

  1. ArrayList al = new ArrayList();
  2. al.add("java01");
  3. Iterater it = al.iterater();
  4. Object obj=it.next();
复制代码

obj并不完全等于"java01",
但是打印的时候,还是可以输出"java01"
但是应该有其他信息丢失了吧。,

6 个回复

倒序浏览
不是,obj就是一个对象,相当于next()得到的这个值得载体,为什么用object呢,就是能够接受所有对象

如果是对对象进行向上转型,变成Opject,那么他的特有功能就不能使用了,必须在做向下转型的动作
回复 使用道具 举报
向下转,前面要加String
回复 使用道具 举报
没丢什么信息吧,只有过是向上转型了而已,父类的引用还是指向子类的对象实体啊
回复 使用道具 举报
你使用迭代器进行访问,我的理解是 ArrayList开辟好内存空间后,使用迭代器来访问具体的内存空间,向上引用也是指向的这个内存空间,只要这个内存空间的值没有发生变动,是不会出现丢失的。 不知道理解正确否,如有错误请指正。
回复 使用道具 举报
﹑淼 来自手机 中级黑马 2014-8-13 12:30:01
地板
不会,这就是个多态。
回复 使用道具 举报
不是,我感觉就是他特有的一些功能就不能用了啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马