Java 继承实现员工工资核算打印:部门经理与普通员工示例

本文将通过 Java 代码示例演示如何使用继承实现员工工资核算打印功能。

需求:

  • 定义员工类 (Employee),包含姓名、单日工资、工作天数等属性。
  • 定义部门经理类 (Manager) 和普通员工类 (Worker),分别继承员工类。
  • 部门经理工资 = 1000 + 单日工资 * 天数 * 等级 (1.2) = 奖金 + 基本工资
  • 普通员工工资 = 单日工资 * 天数 * 等级 (1.0) = 基本工资
  • 每个员工类都需要重写打印工资方法,输出工资信息。

代码实现:

// 员工类
class Employee {
    protected String name;
    protected double dailyWage;
    protected int workingDays;

    public Employee(String name, double dailyWage, int workingDays) {
        this.name = name;
        this.dailyWage = dailyWage;
        this.workingDays = workingDays;
    }

    public void printSalary() {
        System.out.println('姓名:' + name);
        System.out.println('基本工资:' + calculateSalary());
    }

    protected double calculateSalary() {
        return dailyWage * workingDays;
    }
}

// 部门经理类
class Manager extends Employee {
    private double bonus;
    private double level;

    public Manager(String name, double dailyWage, int workingDays, double bonus, double level) {
        super(name, dailyWage, workingDays);
        this.bonus = bonus;
        this.level = level;
    }

    @Override
    protected double calculateSalary() {
        return bonus + super.calculateSalary() * level;
    }
}

// 普通员工类
class Worker extends Employee {
    private double level;

    public Worker(String name, double dailyWage, int workingDays, double level) {
        super(name, dailyWage, workingDays);
        this.level = level;
    }

    @Override
    protected double calculateSalary() {
        return super.calculateSalary() * level;
    }
}

// 测试类
public class Test {
    public static void main(String[] args) {
        Worker worker = new Worker('张三', 100, 20, 1.0);
        worker.printSalary();

        System.out.println();

        Manager manager = new Manager('李四', 100, 20, 1000, 1.2);
        manager.printSalary();
    }
}

代码说明:

  • 员工类 (Employee) 是父类,包含基本信息和计算基本工资的方法。
  • 部门经理类 (Manager) 和普通员工类 (Worker) 继承员工类,并重写了计算工资方法,分别添加了奖金和等级系数。
  • 测试类 (Test) 中创建了普通员工和部门经理对象,并调用其打印工资方法,输出工资信息。

运行结果:

姓名:张三
基本工资:2000.0

姓名:李四
基本工资:2600.0

通过以上代码,可以清楚地看到如何利用 Java 的继承和多态性来实现灵活的工资计算功能。不同的员工类型可以拥有不同的工资计算方法,而无需重复编写代码。

总结:

  • 使用继承可以实现代码复用,提高代码可读性和可维护性。
  • 多态性允许不同的子类拥有不同的实现方式,从而实现灵活的工资计算功能。
  • 本文示例仅为简单演示,实际应用中可能需要根据具体需求进行调整和扩展。
Java 继承实现员工工资核算打印:部门经理与普通员工示例

原文地址: https://www.cveoy.top/t/topic/NgH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录