创建SchoolMem类,该类中包含三个数据成员:姓名、性别、年龄;创建Student类,继承⾃SchoolMem类,添加额外三个数据成员:班级、学号和数量统计;创建Teacher类,继承⾃SchoolMem类,添加额外三个数据成员:学院、⼯号和数量统计。要求给每个类适当添加属性、成员方法和特殊方法(如构造方法),实现学⽣和教师信息的输⼊输出。实现并测试这个类。(建议在⽗类和⼦类中使⽤同名函数以实现多态,如在SchoolMem类、Student类和Teacher类中分别实现printInfo方法输出对象的信息。)
时间: 2024-02-28 21:53:53 浏览: 33
好的,这是一个面向对象编程的问题。我会根据你的要求为你解答。
首先,我们需要创建一个SchoolMem类,该类中包含三个数据成员:姓名、性别、年龄。我们可以通过如下代码来实现:
```python
class SchoolMem:
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
def printInfo(self):
print("姓名:{},性别:{},年龄:{}".format(self.name, self.gender, self.age))
```
其中,`__init__`方法为构造方法,用于初始化对象的属性;`printInfo`方法用于输出对象的信息。
接下来,我们需要创建一个Student类,继承自SchoolMem类,添加额外三个数据成员:班级、学号和数量统计。我们可以通过如下代码来实现:
```python
class Student(SchoolMem):
count = 0
def __init__(self, name, gender, age, class_name, student_id):
super().__init__(name, gender, age)
self.class_name = class_name
self.student_id = student_id
Student.count += 1
def printInfo(self):
super().printInfo()
print("班级:{},学号:{}".format(self.class_name, self.student_id))
```
其中,`super().__init__`用于调用父类的构造方法,`count`用于统计学生数量,`printInfo`方法用于输出对象的信息。
最后,我们需要创建一个Teacher类,继承自SchoolMem类,添加额外三个数据成员:学院、工号和数量统计。我们可以通过如下代码来实现:
```python
class Teacher(SchoolMem):
count = 0
def __init__(self, name, gender, age, college, teacher_id):
super().__init__(name, gender, age)
self.college = college
self.teacher_id = teacher_id
Teacher.count += 1
def printInfo(self):
super().printInfo()
print("学院:{},工号:{}".format(self.college, self.teacher_id))
```
其中,`super().__init__`用于调用父类的构造方法,`count`用于统计教师数量,`printInfo`方法用于输出对象的信息。
现在,我们已经完成了三个类的定义。我们可以通过如下代码来测试:
```python
s1 = Student("张三", "男", 18, "一班", "001")
s2 = Student("李四", "女", 19, "二班", "002")
t1 = Teacher("王老师", "男", 30, "计算机学院", "1001")
t2 = Teacher("李老师", "女", 35, "外语学院", "1002")
s1.printInfo()
s2.printInfo()
t1.printInfo()
t2.printInfo()
print("学生数量:{}".format(Student.count))
print("教师数量:{}".format(Teacher.count))
```
输出结果如下:
```
姓名:张三,性别:男,年龄:18
班级:一班,学号:001
姓名:李四,性别:女,年龄:19
班级:二班,学号:002
姓名:王老师,性别:男,年龄:30
学院:计算机学院,工号:1001
姓名:李老师,性别:女,年龄:35
学院:外语学院,工号:1002
学生数量:2
教师数量:2
```
以上就是本题的解答,希望能够帮助到你!