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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
看下面代码 请给我个解释 最好详细点 。
public class Parent implements Comparable {

private int age = 0;

public Parent(int age){

this.age = age;

}

public int compareTo(Object o) {

System.out.println("method of parent");

Parent o1 = (Parent)o;
return age>o1.age?1:age<o1.age?-1:0;
}

}

public class Child extends Parent {

public Child(){

super(3);

}

public int compareTo(Object o) {

System.out.println("method of child");

// Child o1 = (Child)o;

return 1;

}
}

public class TreeSetTest {

public static void main(String[] args) {

TreeSet set = new TreeSet();
set.add(new Parent(3));
set.add(new Child());
set.add(new Parent(4));
System.out.println(set.size());
}
}

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
这代码谁写的?我惊呆了!
回复 使用道具 举报
低调的奢华 发表于 2013-11-13 17:49
这代码谁写的?我惊呆了!

怎么了?不就是现在学的,哪有有问题吗?
回复 使用道具 举报
貌似是add谁调谁的compareTo方法,我只是觉得这代码是为出题才这么写的,看着难受。
回复 使用道具 举报
低调的奢华 发表于 2013-11-13 19:21
貌似是add谁调谁的compareTo方法,我只是觉得这代码是为出题才这么写的,看着难受。 ...

嗯,就是题
回复 使用道具 举报
为了黑马,为了美好的未来,加油哈,兄弟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马