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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马巩伟伟 黑马帝   /  2011-12-15 12:43  /  2507 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 独行客 于 2011-12-15 14:16 编辑

class GenericDemo4
{
        public static  void main(String[] args)
        {
           ArrayList<Person> list1=new ArrayList<Person>();
       list1.add(new Person("sfsfsd"));
           list1.add(new Person("ssdf"));
           list1.add(new Person("sfwr"));
       ArrayList<Student> list2 =new ArrayList<Student>();
           list2.add(new Student("sfs--1"));
           list1.add(new Student("sfsfsd---2"));
           list1.add(new Student("sfsfsd---3"));
           print(list1);
        }
        public static void print(ArrayList<Person> list)
        {
           Iterator<Person> it=list.iterator();
           while(it.hasNext())
           {
               System.out.println(it.next().getName());  我在这里分明传的是父类,可是结果中为什么会出现子类?
           }
        }
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
Student和Person有什么关系吗?把它们两个的代码也贴出来看看啊
回复 使用道具 举报
正确啊,你打印的是集合list1嘛,list1里面确实存了3个Person和2个Student啊
回复 使用道具 举报
  list2.add(new Student("sfs--1"));
  list1.add(new Student("sfsfsd---2"));
  list1.add(new Student("sfsfsd---3"));

添加错误,把list1,换成list2

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
public static  void main(String[] args)
        {
           ArrayList<Person> list1=new ArrayList<Person>();
       list1.add(new Person("sfsfsd"));
           list1.add(new Person("ssdf"));
           list1.add(new Person("sfwr"));
       ArrayList<Student> list2 =new ArrayList<Student>();
           list2.add(new Student("sfs--1"));
           list1.add(new Student("sfsfsd---2"));
           list1.add(new Student("sfsfsd---3"));
           print(list1);// 大哥,你这里输入的list1,当然输出list1
        }

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
马伟奇 发表于 2011-12-15 13:21
public static  void main(String[] args)
        {
           ArrayList list1=new ArrayList();

哎,确实是自己粗心了。。。。。。兄弟说的是
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马