某公司分为四类员工,每个类的员工封装如下: (1)Employee父类:属性name, id和 baseWage(基本工资),方法outPut()输出属性的信息。 (2) HourlyEmployee子类:基本工资加累计的小时工资。属性hours(小时数),hWage(每小时工资),方法calExWage( 计算每月的累计的小时工资;重写outPut (输出属性的信息和员工的小时工资。 (3) Employee Test类:创建每个子类的对象,调用他们相应的方法。
时间: 2023-05-21 18:05:36 浏览: 157
c++ 类和对象总结
答案如下:
可以通过以下代码实现:
```
class Employee:
def __init__(self, name, id, baseWage):
self.name = name
self.id = id
self.baseWage = baseWage
def outPut(self):
print('Name:', self.name)
print('ID:', self.id)
print('Base Wage:', self.baseWage)
class HourlyEmployee(Employee):
def __init__(self, name, id, baseWage, hours, hWage):
super().__init__(name, id, baseWage)
self.hours = hours
self.hWage = hWage
def calExWage(self):
return self.hours * self.hWage
def outPut(self):
super().outPut()
print('Hourly Wage:', self.calExWage())
class EmployeeTest:
def __init__(self):
e1 = Employee('Bob', 1, 1000)
e2 = HourlyEmployee('Alice', 2, 1000, 120, 10)
e1.outPut()
e2.outPut()
EmployeeTest()
```
这个程序可以创建一个 `Employee` 父类和一个 `HourlyEmployee` 子类,还有一个 `EmployeeTest` 类来测试上述两个类。`Employee` 类有三个属性 `name`,`id` 和 `baseWage` ,还有一个方法 `outPut`,用于输出属性信息。`HourlyEmployee` 类是 `Employee` 类的子类,其中还有 `hours` 和 `hWage` 属性,还有 `calExWage` 方法,用于计算小时工资,重写了 `outPut` 方法,输出属性信息和员工小时工资。`EmployeeTest` 类创建了 `Employee` 和 `HourlyEmployee` 的对象,并调用他们的方法输出信息。
阅读全文