java公司有两类员工,员工拿时薪,员工拿月薪代码
时间: 2024-03-16 22:42:24 浏览: 26
好的,我可以给您提供一个简单的 Java 代码示例,来演示如何定义两种不同类型的员工类。
```
// 定义员工类
public abstract class Employee {
protected String name;
protected int age;
protected String gender;
protected double salary;
public Employee(String name, int age, String gender, double salary) {
this.name = name;
this.age = age;
this.gender = gender;
this.salary = salary;
}
public abstract double getSalary();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public double getBaseSalary() {
return salary;
}
public void setBaseSalary(double salary) {
this.salary = salary;
}
}
// 定义时薪员工类
public class HourlyEmployee extends Employee {
private double hourlyWage;
private double hoursWorked;
public HourlyEmployee(String name, int age, String gender, double hourlyWage, double hoursWorked) {
super(name, age, gender, 0);
this.hourlyWage = hourlyWage;
this.hoursWorked = hoursWorked;
}
@Override
public double getSalary() {
return hourlyWage * hoursWorked;
}
}
// 定义月薪员工类
public class SalariedEmployee extends Employee {
public SalariedEmployee(String name, int age, String gender, double salary) {
super(name, age, gender, salary);
}
@Override
public double getSalary() {
return salary;
}
}
```
以上代码中,我们定义了一个抽象的 `Employee` 类,其中包含了员工的一些基本属性和方法,如姓名、年龄、性别、薪资等等。在 `Employee` 类中,我们定义了一个抽象的 `getSalary()` 方法,用于计算员工的实际薪资,具体的实现可以在其子类中进行。
然后我们定义了两个具体的员工子类,分别是 `HourlyEmployee`(时薪员工)和 `SalariedEmployee`(月薪员工)。在 `HourlyEmployee` 类中,我们定义了时薪和工作小时数两个属性,并且重写了 `getSalary()` 方法,用于计算时薪员工的实际薪资。在 `SalariedEmployee` 类中,我们直接使用父类中的 `salary` 属性,重写了 `getSalary()` 方法,用于计算月薪员工的实际薪资。
当然,以上代码仅仅是一个简单的示例,实际应用中可能还需要更多的属性和方法,以及更多的子类来表示不同类型的员工。