设计一个抽象类,编程显示初中生、高中生和大学生的相关信息。
时间: 2024-02-19 11:00:35 浏览: 22
好的,我可以帮您设计这个抽象类。以下是我设计的代码:
```python
from abc import ABC, abstractmethod
class Student(ABC):
@abstractmethod
def show_info(self):
pass
class MiddleSchoolStudent(Student):
def __init__(self, name, age, gender, grade):
self.name = name
self.age = age
self.gender = gender
self.grade = grade
def show_info(self):
print(f"姓名:{self.name}\n年龄:{self.age}\n性别:{self.gender}\n年级:{self.grade}\n就读学校:初中\n")
class HighSchoolStudent(Student):
def __init__(self, name, age, gender, grade):
self.name = name
self.age = age
self.gender = gender
self.grade = grade
def show_info(self):
print(f"姓名:{self.name}\n年龄:{self.age}\n性别:{self.gender}\n年级:{self.grade}\n就读学校:高中\n")
class CollegeStudent(Student):
def __init__(self, name, age, gender, major):
self.name = name
self.age = age
self.gender = gender
self.major = major
def show_info(self):
print(f"姓名:{self.name}\n年龄:{self.age}\n性别:{self.gender}\n专业:{self.major}\n就读学校:大学\n")
```
这个抽象类叫做`Student`,包含了一个抽象方法`show_info`。根据要求,我还定义了三个类继承自这个抽象类,分别是`MiddleSchoolStudent`、`HighSchoolStudent`和`CollegeStudent`。这三个类分别对应了初中生、高中生和大学生,并且都实现了`show_info`方法。
当我们需要展示某个学生的信息时,只需要创建对应的学生对象,并调用它的`show_info`方法即可。例如:
```python
middle_school_student = MiddleSchoolStudent("小明", 15, "男", 9)
middle_school_student.show_info()
high_school_student = HighSchoolStudent("小红", 17, "女", 11)
high_school_student.show_info()
college_student = CollegeStudent("张三", 20, "男", "计算机科学")
college_student.show_info()
```
这样就可以分别展示初中生、高中生和大学生的相关信息了。