实验三(1)有一个工厂有三类人:固定工资工人、计件工人、计时工人。(2)他们有共同的特征:都有名字、住址。(3)三类员工的工资计算方法不同:固定工资工人,每个月领的工资是不变的;计件工人根据生产的产品数量计算工资;计时工人根据工作的时间长短计算工资。(4)在main函数中创建不同的员工,并依次输出每个员工的名字、住址、工资等信息。(5)程序能体现多态,并写出具体代码
时间: 2024-03-20 09:44:46 浏览: 185
计件工资管理办法.doc
好的,以下是一个简单的 Python 代码实现,用于展示多态的概念:
```
class Worker:
def __init__(self, name, address):
self.name = name
self.address = address
def calculate_salary(self):
pass
class FixedSalaryWorker(Worker):
def __init__(self, name, address, salary):
super().__init__(name, address)
self.salary = salary
def calculate_salary(self):
return self.salary
class Pieceworker(Worker):
def __init__(self, name, address, pieces, rate):
super().__init__(name, address)
self.pieces = pieces
self.rate = rate
def calculate_salary(self):
return self.pieces * self.rate
class Timekeeper(Worker):
def __init__(self, name, address, hours, rate):
super().__init__(name, address)
self.hours = hours
self.rate = rate
def calculate_salary(self):
return self.hours * self.rate
def main():
workers = [
FixedSalaryWorker('Tom', 'Beijing', 5000),
Pieceworker('Jerry', 'Shanghai', 1000, 5),
Timekeeper('Bob', 'Guangzhou', 40, 50)
]
for worker in workers:
print('Name:', worker.name)
print('Address:', worker.address)
print('Salary:', worker.calculate_salary())
print('-----------------------')
if __name__ == '__main__':
main()
```
在这个程序中,我们首先定义一个基类 `Worker`,它包含了所有员工共有的属性 `name` 和 `address`,以及一个抽象方法 `calculate_salary`。然后我们定义三个子类 `FixedSalaryWorker`、`Pieceworker` 和 `Timekeeper`,它们分别实现了自己的薪资计算方式,并重写了父类中的 `calculate_salary` 方法。
在 `main` 函数中,我们创建了不同类型的员工对象,并将它们存储在一个列表中。然后我们遍历这个列表,依次输出每个员工的名字、住址、工资等信息。这里涉及到多态的概念,即不同类型的员工对象可以调用同一个方法 `calculate_salary`,但是表现出不同的行为。
阅读全文