公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理不同员工的是,经理有自己在公司对应的级别。假设每次给员工涨工资一次能涨10,经理能涨20%。本任务要求利用类的多态性实现给员工和经理涨工资。
基于new bing的编写参考学习:
// 公司员工类
class Employee {
private String name; // 姓名
private String address; // 地址
private int number; // 工号
private double salary; // 工资
private int workingYears; // 工龄
public Employee(String name, String address, int number, double salary, int workingYears) {
this.name = name;
this.address = address;
this.number = number;
this.salary = salary;
this.workingYears = workingYears;
}
public void raiseSalary() {
salary += 10;
}
public String toString() {
return "员工:" + name + ", 地址:" + address + ", 工号:" + number + ", 工资:" + salary + ", 工龄:" + workingYears;
}
}
// 经理类
class Manager extends Employee {
private String level; // 级别
public Manager(String name, String address, int number, double salary, int workingYears, String level) {
super(name, address, number, salary, workingYears);
this.level = level;
}
// 经理给涨薪
public void raiseSalary() {
salary *= 1.2;
}
public String toString() {
return "经理:" + super.toString() + ", 级别:" + level;
}
}
public class Main {
public static void main(String[] args) {
// 初始化员工
Employee employee1 = new Employee("Tom", "Shanghai", 1, 5000, 2);
Employee employee2 = new Employee("Jerry", "Beijing", 2, 6000, 3);
// 初始化经理
Manager manager1 = new Manager("Amy", "Shenzhen", 3, 8000, 4, "高级经理");
Manager manager2 = new Manager("Jack", "Hangzhou", 4, 10000, 5, "总监");
// 给员工和经理涨薪
employee1.raiseSalary();
employee2.raiseSalary();
manager1.raiseSalary();
manager2.raiseSalary();
// 打印员工和经理的信息
System.out.println(employee1.toString());
System.out.println(employee2.toString());
System.out.println(manager1.toString());
System.out.println(manager2.toString());
}
}