## Phần A - Tạo một lớp trừu tượng Employees (6 điểm):
| Trường | Kiểu dữ liệu | Mô tả |
|--------------|--------------|-----------------|
| empID | int | Mã nhân viên |
| empName | String | Tên nhân viên |
| dob | LocalDate | Ngày sinh |
| department | String | Phòng ban |
| numWork | int | Số năm làm việc |
3. Constructors (1 điểm):
- Tạo một constructor không có tham số: khởi tạo empID = 10, empName với tên của bạn, department = "Aptech", numWork = 0, DOB với ngày sinh của bạn.
- Tạo một constructor có 5 tham số: khởi tạo empID, empName, dob, department, numWork với các giá trị được truyền vào.
4. Phương thức (3 điểm):
- Tạo một phương thức có tên: Input() để nhập dữ liệu cho nhân viên.
- Tạo một phương thức có tên: DisplayDetail() hiển thị thông tin của Nhân viên: empID, empName, DOB, department, numWork.
- Tạo một phương thức trừu tượng có tên: CalculateSalary() có kiểu trả về là double.
## Phần B - Tạo một lớp TemporaryEmp kế thừa từ Employees (5 điểm).
| Trường | Kiểu dữ liệu | Mô tả |
|--------------|--------------|-----------------------|
| workDay | int | Số ngày làm việc |
2. Constructors (2 điểm):
- Tạo một constructor không có tham số kế thừa constructor của lớp cơ sở và khởi tạo workDay = 0.
- Tạo một constructor có 6 tham số kế thừa constructor của lớp cơ sở (Employees) và khởi tạo workDay với giá trị truyền vào.
3. Phương thức (3 điểm):
- Thực hiện phương thức trừu tượng CalculateSalary().
- Nếu workDay <= 25: Salary = workDay * 50.000.
- Nếu workDay > 25: Salary = 25 * 50.000 + (workDay - 25) * 50.000 * 2.
- Trả về lương.
- Tạo một phương thức ghi đè có tên Input() để nhập dữ liệu cho nhân viên.
- Tạo một phương thức ghi đè có tên DisplayDetail() hiển thị thông tin của TemporaryEmp: empID, empName, DOB, department, salary, workDay.
## Phần C - Tạo một lớp EmployeeManagement (8 điểm).
1. Trường (0.5 điểm):
List<TemporaryEmp> listEmployee;
2. Phương thức (7 điểm):
- Input_Employee: nhập thông tin nhân viên cho đến khi người dùng không chọn 'Y' hoặc 'y'.
- display_Employee: Hiển thị các phần tử trong danh sách.
- display_max_numWork: Hiển thị TemporaryEmp có số năm làm việc lớn nhất.
- Search_Employee: cho phép tìm kiếm một nhân viên trong danh sách với tên được nhập từ bàn phím.
## Phần D - Tạo một lớp Test (1.5 điểm).
Kiểm tra chức năng của lớp EmployeeManagement.