定义一个教师类继承Person类并实现接口Person_Interface,定义一个工号,定义一个函数对教师的所有属性进行赋初值,并根据输入的天数结算教师薪酬,再定一个函数显示教师的所有信息。
时间: 2024-03-06 18:51:50 浏览: 61
好的,这是一个经典的面向对象的编程问题,下面是代码实现:
```python
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
class Person_Interface:
def __init__(self, salary_per_day):
self.salary_per_day = salary_per_day
self.days_worked = 0
self.total_salary = 0
self.teacher_id = ""
def set_teacher_info(self, teacher_id, days_worked):
self.teacher_id = teacher_id
self.days_worked = days_worked
self.total_salary = self.days_worked * self.salary_per_day
def display_teacher_info(self):
print("教师工号:{}".format(self.teacher_id))
print("教师工资:{}".format(self.total_salary))
print("教师信息:姓名:{},年龄:{},性别:{}".format(self.name, self.age, self.gender))
class Teacher(Person, Person_Interface):
def __init__(self, name, age, gender, salary_per_day):
Person.__init__(self, name, age, gender)
Person_Interface.__init__(self, salary_per_day)
```
在上面的代码中,我们定义了两个类:`Person` 和 `Person_Interface`,并且 `Teacher` 类继承了 `Person` 类和 `Person_Interface` 接口。在 `Person_Interface` 接口中,我们定义了 `set_teacher_info` 和 `display_teacher_info` 两个函数,用于对教师的信息进行赋值和显示。
在 `Teacher` 类的构造函数中,我们首先调用了 `Person` 类的构造函数,然后调用了 `Person_Interface` 接口的构造函数,完成了对教师的所有属性进行赋初值的操作。
接下来,我们可以创建一个教师对象,并使用 `set_teacher_info` 函数进行赋值,最后使用 `display_teacher_info` 函数显示教师的所有信息。代码示例如下:
```python
t = Teacher("张三", 28, "男", 500)
t.set_teacher_info("T001", 20)
t.display_teacher_info()
```
输出结果如下:
```
教师工号:T001
教师工资:10000
教师信息:姓名:张三,年龄:28,性别:男
```
注意,这里我们使用了多重继承的方式,通过继承 `Person` 类和实现 `Person_Interface` 接口,将 `Teacher` 类扩展为一个具有教师属性和教师薪酬计算功能的类。
阅读全文