黑马程序员技术交流社区

标题: 代码错误 [打印本页]

作者: 闲人    时间: 2014-4-2 11:30
标题: 代码错误
本帖最后由 闲人 于 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) ;
        }
}



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

原来是这个样子,谢谢了,刚开始用eclipse,不太会用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2