分数 15 雇员和经理 作者 郑珺 单位 浙江传媒学院 编写一个两个类Employee和Manager。 (1)编写一个类Employee表示雇员,它实现了Comparable接口,包含以下成员 ①属性: name:私有,String型,表示姓
时间: 2024-10-12 09:16:08 浏览: 131
在Java中,你可以创建两个类`Employee`和`Manager`,它们都继承自`Comparable<Employee>`,以实现分数15分下的雇员分类。这里是一个简单的例子:
```java
import java.util.Comparator;
// 定义一个Employee类,作为Comparable接口的实现
class Employee implements Comparable<Employee> {
private String name;
private int score; // 分数
// 构造函数、getter和setter省略(可以添加)
@Override
public int compareTo(Employee other) {
return Integer.compare(this.score, other.score); // 按照分数升序排序
}
// 重写toString方法,以便于打印员工信息
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
// Manager类,继承自Employee,并增加特有的管理职责
class Manager extends Employee {
private String title; // 管理职位
// 构造函数、getter和setter省略(同样需要添加)
// 如果需要的话,可以在Manager类中覆盖compareTo方法,按其他标准比较(如按工作年限)
@Override
public int compareTo(Employee other) {
// 这里可以根据需要定制比较规则,例如先看级别再看分数
if (other instanceof Manager) {
int managerComparison = this.title.compareTo(((Manager) other).title);
if (managerComparison != 0) {
return managerComparison;
} else {
return super.compareTo(other);
}
} else {
return super.compareTo(other);
}
}
// 重写toString方法,包括经理头衔
@Override
public String toString() {
return "Manager{" +
"name='" + name + '\'' +
", score=" + score +
", title='" + title + '\'' +
'}';
}
}
// 示例浙江传媒学院郑珺老师的作品,可能用于教学场景
public class EmployeeExample {
public static void main(String[] args) {
Employee employee1 = new Employee("张三", 10);
Employee employee2 = new Employee("李四", 15);
Manager manager1 = new Manager("王五", 20, "项目经理");
Manager manager2 = new Manager("赵六", 18, "部门主管");
System.out.println("Employees:");
List<Employee> employees = Arrays.asList(employee1, employee2);
Collections.sort(employees);
for (Employee e : employees) {
System.out.println(e);
}
System.out.println("\nManagers:");
List<Manager> managers = Arrays.asList(manager1, manager2);
Collections.sort(managers);
for (Manager m : managers) {
System.out.println(m);
}
}
}
```
阅读全文