johnny 发表于 2016-9-4 12:00:42

131、TreeSet里面放对象,如果同时放入了父类和子类的实例对象......

131、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!     (应该是没有针对问题的确切的答案,当前的add方法放入的是哪个对象,就调用哪个对象的compareTo方法,至于这个compareTo方法怎么做,就看当前这个对象的类中是如何编写这个方法的)实验代码:public class Parent implements Comparable {private int age = 0;public Parent(int age){this.age = age;}public int compareTo(Object o) {// TODO Auto-generated method stubSystem.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) { // TODO Auto-generated method stubSystem.out.println("method of child");// Child o1 = (Child)o;return 1; }} public class TreeSetTest { /** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTreeSet set = new TreeSet();set.add(new Parent(3));set.add(new Child());set.add(new Parent(4));System.out.println(set.size());} }
页: [1]
查看完整版本: 131、TreeSet里面放对象,如果同时放入了父类和子类的实例对象......