设计3个类,分别是学生类student,本科生类 Undergraduate, 研究生类Postgraduate,其中Student类是 个父类,它包含一个学生的基本信息如姓名、平均成绩等。类 Undergraduate 和Postgraduate是其子类,分别设计子类的特 属性及其输出所有属性的toString0方法。设计一个学生数组 能放本科生对象又能放研究生对象,使用多态的方式输出数组中各 个对象的所有属性。
时间: 2024-04-01 09:33:11 浏览: 185
好的,这是一个面向对象的题目,下面是代码实现:
```python
# 定义学生类
class Student:
def __init__(self, name, avg_score):
self.name = name
self.avg_score = avg_score
def __str__(self):
return f"姓名:{self.name}\n平均成绩:{self.avg_score}"
# 定义本科生类
class Undergraduate(Student):
def __init__(self, name, avg_score, major):
super().__init__(name, avg_score)
self.major = major
def __str__(self):
return f"{super().__str__()}\n专业:{self.major}"
# 定义研究生类
class Postgraduate(Student):
def __init__(self, name, avg_score, supervisor):
super().__init__(name, avg_score)
self.supervisor = supervisor
def __str__(self):
return f"{super().__str__()}\n导师:{self.supervisor}"
# 定义学生数组
class StudentArray:
def __init__(self):
self.array = []
def add_student(self, student):
self.array.append(student)
def print_students(self):
for student in self.array:
print(student)
print("")
# 创建本科生和研究生对象
undergrad = Undergraduate("小明", 85, "计算机科学与技术")
postgrad = Postgraduate("小红", 92, "张老师")
# 创建学生数组
students = StudentArray()
students.add_student(undergrad)
students.add_student(postgrad)
# 输出学生数组中各个对象的所有属性
students.print_students()
```
以上代码实现了一个简单的面向对象程序,定义了学生类、本科生类和研究生类,其中学生类是一个父类,包含了一个学生的基本信息如姓名、平均成绩等。类Undergraduate和Postgraduate是其子类,分别设计子类的特属性及其输出所有属性的toString()方法。设计了一个学生数组,能放本科生对象又能放研究生对象,使用多态的方式输出数组中各个对象的所有属性。运行程序时,会输出本科生和研究生的各个属性。
阅读全文
相关推荐


















