TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!...
生活随笔
收集整理的這篇文章主要介紹了
TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/**** @author ocq*/
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 o1 = (Parent) o;return age > o1.age ? 1 : age < o1.age ? -1 : 0;}
}class Child extends Parent{public Child() {super(3);}public int compareTo(Object o) {System.out.println("method of 子");return 1;}
}public class ComparableTest {/*** @param args*/public static void main(String[] args) {TreeSet set = new TreeSet();set.add(new Parent(3));set.add(new Child());set.add(new Child());set.add(new Parent(4));System.out.println(set.size());
// 測試結果:
// 如果子類和父類都復寫了compareTo方法那么各自調用自己的compareTo方法
// 如果子類沒有復寫compareTo方法,那么調用的都是父類的compareTo方法
}
}
?
轉載于:https://www.cnblogs.com/langtianya/p/4677928.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: emacs 新手笔记(四) —— 使用
- 下一篇: form表单按enter键自动提交的问题