我想问问各类员工的收入怎么求呀

我想问问各类员工的收入怎么求呀,需要用到哪方面的知识,谢谢啦

img

代码示例如下:

import java.math.BigDecimal;
import java.util.Calendar;

public class EmployeeTest {
    public static void main(String[] args) {
        Teacher teacher=new Teacher("张三",BigDecimal.valueOf(20000),BigDecimal.valueOf(100));
        System.out.println(teacher.calAnnualInCome());

        Scientist scientist=new Scientist("莉丝",BigDecimal.valueOf(50000),BigDecimal.valueOf(200000));
        System.out.println(scientist.calAnnualInCome());
    }

    public static class Employee {
        /**
         * 姓名
         */
        private String name;

        /**
         * 基本工资
         */
        private BigDecimal salary;

        public Employee(String name, BigDecimal salary) {
            this.name = name;
            this.salary = salary;
        }

        public BigDecimal calAnnualInCome() {
            return BigDecimal.valueOf(12).multiply(salary);
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public BigDecimal getSalary() {
            return salary;
        }

        public void setSalary(BigDecimal salary) {
            this.salary = salary;
        }
    }

    public static class Teacher extends Employee {

        private BigDecimal subsidy;

        public Teacher(String name, BigDecimal salary, BigDecimal subsidy) {
            super(name, salary);
            this.subsidy = subsidy;
        }


        public BigDecimal getSubsidy() {
            return subsidy;
        }

        public void setSubsidy(BigDecimal subsidy) {
            this.subsidy = subsidy;
        }

        @Override
        public BigDecimal calAnnualInCome() {
            Calendar calendar = Calendar.getInstance();
            int numOfDays = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
            return super.calAnnualInCome().add(subsidy.multiply(BigDecimal.valueOf(numOfDays)));
        }
    }

    public static class Scientist extends Employee {

        private BigDecimal annualBonus;

        public Scientist(String name, BigDecimal salary, BigDecimal annualBonus) {
            super(name, salary);
            this.annualBonus = annualBonus;
        }

        @Override
        public BigDecimal calAnnualInCome() {
            return super.calAnnualInCome().add(annualBonus);
        }

        public BigDecimal getAnnualBonus() {
            return annualBonus;
        }

        public void setAnnualBonus(BigDecimal annualBonus) {
            this.annualBonus = annualBonus;
        }
    }
}


运算结果:
276500
800000

img