编程完成下列个各类的功能:某公司分为四类员工,每个员工的封装如下;(1)employee类,属性name,id和basswage,方法output输出属性的信息(2)hourlyemployee类:基本工资加累计的小时工资,属性hours,hwage,方法calexwage计算每月的累计的小时工资,重写output输出属性的信息和员工的小时工资。(3)employeeTest类:创建每个类的对象,调用他们的相应方法
时间: 2023-05-23 13:02:41 浏览: 319
下面是代码实现:
```python
class Employee:
def __init__(self, name, id, basswage):
self.name = name
self.id = id
self.basswage = basswage
def output(self):
print(f"Name: {self.name}\nID: {self.id}\nBase Wage: {self.basswage}\n")
class HourlyEmployee(Employee):
def __init__(self, name, id, basswage, hours, hwage):
super().__init__(name, id, basswage)
self.hours = hours
self.hwage = hwage
def calexwage(self):
return self.basswage + self.hours * self.hwage
def output(self):
super().output()
print(f"Hourly Wage: {self.hwage}\nMonthly Accumulated Hourly Wage: {self.calexwage()}\n")
class EmployeeTest:
def __init__(self):
self.employee = Employee("John Doe", 123, 5000)
self.hourly_employee = HourlyEmployee("Jane Smith", 456, 2000, 100, 20)
def test_output(self):
self.employee.output()
self.hourly_employee.output()
test = EmployeeTest()
test.test_output()
```
这个代码实现了四类员工的封装,包括基本员工 `Employee` 和计时员工 `HourlyEmployee`,还有测试类 `EmployeeTest`。
`Employee` 包含了三个属性:姓名 `name`、ID `id` 和基本工资 `basswage`。`output` 方法输出这些属性的信息。
`HourlyEmployee` 是 `Employee` 的子类,它新增了两个属性:累计小时数 `hours` 和每小时的工资 `hwage`。`calexwage` 方法计算每月的累计小时工资,它是基本工资加上累计小时数乘以每小时工资。`output` 方法重写了基类的 `output` 方法,输出所有基类的属性和员工的小时工资。
`EmployeeTest` 是一个测试类,它在初始化时创建了一个基本员工对象和一个计时员工对象,并调用它们各自的 `output` 方法输出属性信息和小时工资。
阅读全文