编写一个控制台程序,在该程序中构造一个Person基类(至少有姓名),再分别构造Student和Teacher派生类,要求具有不同的特征(分别扩展学号、工号)和行为,能通过静态成员(static)自动记录由不同派生类创建的对象的人数(可以在构造方法中实现)。
时间: 2024-12-01 07:29:44 浏览: 8
在Python中,我们可以创建一个简单的控制台程序来演示这个场景。首先,我们会定义一个`Person`基类,然后创建`Student`和`Teacher`两个派生类。每个派生类都会添加特有的属性,并增加静态计数器来追踪实例的数量。
```python
class Person:
_counter = 0
def __init__(self, name):
self.name = name
Person._counter += 1
print(f"创建了 {name},总人数现在是 {Person._counter}")
@staticmethod
def get_total_count():
return Person._counter
class Student(Person):
def __init__(self, name, student_id):
super().__init__(name)
self.student_id = student_id
class Teacher(Person):
def __init__(self, name, teacher_id):
super().__init__(name)
self.teacher_id = teacher_id
# 测试
student1 = Student("张三", "S001")
teacher1 = Teacher("李四", "T001")
# 输出当前学生和教师数量
print(f"学生总数:{Student.get_total_count()}")
print(f"教师总数:{Teacher.get_total_count()}")
```
在这个例子中,当我们创建`Student`或`Teacher`对象时,它们会自动调用`Person`类的`__init__`方法,同时更新静态计数器。你可以看到,无论是创建学生还是教师,都能获取到所有已创建对象的总数。
阅读全文