java类的编写和继承

公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理不同员工的是,经理有自己在公司对应的级别。假设每次给员工涨工资一次能涨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());
    }
}