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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闲人 中级黑马   /  2014-4-2 11:30  /  960 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 闲人 于 2014-4-2 11:49 编辑

下面代码运行错误,看了好久,看不出哪里错了,代码提示我已在下面标注,希望有知道的指点我下
------------------------
import java.util.*;
public class GenericDemo6 {


        public static void main(String[] args) {
                ArrayList<Person> al = new ArrayList<Person>();
                al.add(new Person("abc1"));
                al.add(new Person("abc2"));
                al.add(new Person("abc3"));
               
                ArrayList<Student> al1 = new ArrayList<Student>();
                        //说是下面一行有问题,但是错误在最下面的类
                al1.add(new Student("abc---1"));
                al1.add(new Student("abc---2"));
                al1.add(new Student("abc---3"));
                printlnColl(al1);
        }
        public static void printlnColl(ArrayList<? extends Person> al)
        {
                Iterator<? extends Person> it = al.iterator();
                while(it.hasNext())
                {
                        System.out.println(it.next().getName());
                }
        }


}
class Person
{
        private String name;
        Person(String name)
        {
                this.name = name ;
        }
        public String getName()
        {
                return name;
        }
}//显示The type Student is already defined,
//但我看不出怎么错了,怎么改,如果可以麻烦告诉我为什么
class Student extends Person      
{
        Student(String name)
        {
                super(name) ;
        }
}


评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

4 个回复

倒序浏览
你这个包里已经定义过Student这个类了
重复了 改个名 或者换个包吧

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
//显示The type Student is already defined,
就是说你的Student类已经定义过了,你用的默认访问权限,
而default:包级别访问权限,在同一个包当中,可以自由访问
所以你把同一个包里的其他Student类注释掉就可以了,希望对你有帮助!
回复 使用道具 举报
Student类已存在,改成其他的类名,就ok了
回复 使用道具 举报
osully 发表于 2014-4-2 11:42
你这个包里已经定义过Student这个类了
重复了 改个名 或者换个包吧

原来是这个样子,谢谢了,刚开始用eclipse,不太会用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马