Menu
CoddyTech

Ôn tập: hệ thống phân cấp nhân viên

Thuộc phần Lập trình hướng đối tượng trong hành trình Python của Coddy. Bài học 22 trên 64.

challenge icon

Thử thách

Khó

Trong thử thách này, bạn sẽ triển khai một hệ thống phân cấp nhân viên.

Bạn cần hoàn thành các tệp sau:

  • person.py: Triển khai lớp cơ sở Person với tên, tuổi và phương thức giới thiệu
  • employee.py: Tạo lớp Employee kế thừa từ Person, có employee_id và lương
  • manager.py: Triển khai lớp Manager mở rộng Employee, có chức năng quản lý phòng ban
  • engineer.py: Xây dựng lớp Engineer mở rộng Employee, có kỹ năng lập trình
  • technical_manager.py: Tạo TechnicalManager bằng cách sử dụng kế thừa đa lớp
  • hierarchy_utils.py: Triển khai hàm tiện ích để hiển thị hệ thống phân cấp lớp

Mỗi tệp đều có các chú thích TODO chi tiết hướng dẫn bạn triển khai.

Tự làm thử

from person import Person
from employee import Employee
from manager import Manager
from engineer import Engineer
from technical_manager import TechnicalManager
from hierarchy_utils import show_hierarchy

# Kiểm tra phần bạn đã triển khai. KHÔNG CHỈNH SỬA ĐOẠN CODE KIỂM TRA NÀY
# Tạo các instance
person = Person("John Smith", 30)
employee = Employee("Alice Johnson", 35, "E12345", 60000)
manager = Manager("Bob Williams", 45, "M54321", 85000, "Marketing")
engineer = Engineer("Carol Davis", 28, "E98765", 75000, "Python")
tech_mgr = TechnicalManager("Dave Wilson", 40, "TM24680", 90000, "R&D", "Java")

# Kiểm tra các phương thức cơ bản
print(person.introduce())
print(employee.introduce())
print(f"Monthly pay: ${employee.calculate_paycheck():.2f}")
print(manager.manage_team())
print(engineer.code())

# Kiểm tra hệ phân cấp kế thừa
print("\nHierarchy demonstrations:")
show_hierarchy(TechnicalManager)

# Kiểm tra thứ tự phân giải phương thức trong đa kế thừa
print("\nTechnical Manager tests:")
print(tech_mgr.introduce())
print(f"Monthly pay: ${tech_mgr.calculate_paycheck():.2f}")
print(tech_mgr.manage_team())
print(tech_mgr.code())

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Python online