通过枚举+Comparable接口实现子类优先级排序
在实现接口Comparable
的compareTo()
方法后,可以通过使用Arrays.sort()
方法来进行排序。但我们日常生活中,对象是复杂的,尤其是在面向对象思想中我们更需要面向现实生活的具体场景,因此写了一个小demo,来实现生活中我们的排序问题。
在一个Employee
(雇员)类中,我们只需要比较它们的Salary(薪水)就行了,但是我们从中还扩展出了Manager
(经理)、Secretary
(秘书)等子类,这时候我们在归类比较的时候就需要按类别比较各自的优先级,同级别下然后再比较各自的薪水,不同优先级,以优先级高的先输出,再按薪水从大到小输出。
Employee(雇员):
package com.pixcer;
/**
* <b>雇员<br/>
*
* @author gu-ppy
* @Package com.pixcer
* @date 20/12/08 13:15
*/
public class Employee implements Comparable<Employee>{
private int id;
private String name;
/**
* <b>薪水
*/
private double salary;
public Employee() {
}
public Employee(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public double getSalary() {
return salary;
}
@Override
public int compareTo(Employee o) {
if (this.getPriority().getPCode()<