Employee 類(抽象類)
java
public abstract class Employee {
private String id;
private String name;
public Employee(String id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "ID: " + id + ", Name: " + name;
}
public abstract double pay();
}
FullTimeEmp 類
java
public class FullTimeEmp extends Employee {
private double salary;
public FullTimeEmp(String id, String name, double salary) {
super(id, name);
this.salary = salary;
}
@Override
public double pay() {
return salary;
}
@Override
public String toString() {
return super.toString() + ", Salary: " + pay();
}
}
PartTimeEmp 類
java
public class PartTimeEmp extends Employee {
private double wage;
private double hours;
public PartTimeEmp(String id, String name, double wage, double hours) {
super(id, name);
this.wage = wage;
this.hours = hours;
}
@Override
public double pay() {
return wage * hours;
}
@Override
public String toString() {
return super.toString() + ", Wage: " + wage + ", Hours: " + hours + ", Salary: " + pay();
}
}
在這些類中,Employee類是一個抽象類,它定義了id和name屬性以及一個抽象方法pay(),用於計算員工的薪資。toString()方法返回員工的身份證號碼和姓名。
FullTimeEmp類和PartTimeEmp類繼承自Employee類。FullTimeEmp類添加了salary屬性,並實現了pay()方法來返回月薪。PartTimeEmp類添加了wage和hours屬性,並實現了pay()方法來根據時薪和工作小時數計算月薪。兩個子類都覆蓋了toString()方法,以包括員工的薪資資訊。