TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
2015-07-26 15:52
519 查看
/** * * @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方法 } }
相关文章推荐
- Oracle12c功能增强新特性之维护&升级&恢复&数据泵等
- 新的Ubuntu系统中安装系统必备工具之中文输入法、tftp、nfs、VIM、ckermit
- Cube Simulation zoj3429 模拟
- HTML5基础19----XHTML的使用规范
- android-async-http框架
- [注]省时利器:代码美化与格式化工具
- hibernate和sleep的区别
- 推荐每个PROFIBUS网段内至多连接32个从设备
- HDU 1042 N!【大数】
- 论设计文档的重要性
- hdu 1000(A + B Problem)
- poj 1185 状态压缩dp(炮兵阵地)
- [基本实验] 远程文件包含
- 【SQL Server 2008 使用篇】无法连接到服务器
- 机房收费系统——上下机
- python编码笔记
- bootstrap javascript插件中类成员命名之最前面有无$
- ActiveMQ
- 深入了解MySQL
- 【Treap】【TYVJ 1728】普通平衡树