黑马程序员技术交流社区
标题:
代码错误
[打印本页]
作者:
闲人
时间:
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