class Person implements Comparable<Person> { String name; public Person(String name) { this.name = name; } @Override public int compareTo(Person o) { return (this.name.compareTo(o.name) == 0) ? this.getClass().getName().compareTo(o.getClass().getName()) : this.name.compareTo(o.name); } } class Teacher extends Person { @Override public String toString() { return this.getClass().getName()+":姓名:" + super.name + ",职称:" + title; } String title; public Teacher(String name, String title) { super(name); this.title = title; } class Worker extends Person { String job; public Worker(String name,String job) { super(name); this.job=job; } @Override public String toString() { return this.getClass().getName()+":姓名:"+name+",工种:"+job; } }
如果父类实现并重写了compareTo方法,那么其子类同样具有该方法,可以直接加入TreeSet
最新推荐文章于 2024-07-15 17:41:46 发布
本文介绍了一个具体的Java程序示例,展示了如何通过实现Comparable接口来为自定义的Person类提供比较逻辑,并且扩展了Teacher和Worker子类,演示了它们如何重写toString方法以提供更丰富的对象描述。
491





