编写程序测试如下类: 人类(基类): 属性包括姓名、性别、年龄、职业; 行为包括:1.设置各个属性值(用构造函数); 2.显示某个属性值; 3.显示所有属性值; 学生类(人类的派生类):新属性有:学校、专业、年级 新的行为:1.显示某个新增的属性; 2.显示所有属性;
时间: 2024-01-07 10:06:13 浏览: 67
以下是一个可能的实现:
```python
class Person:
def __init__(self, name, gender, age, profession):
self.name = name
self.gender = gender
self.age = age
self.profession = profession
def set_name(self, name):
self.name = name
def set_gender(self, gender):
self.gender = gender
def set_age(self, age):
self.age = age
def set_profession(self, profession):
self.profession = profession
def display_name(self):
print("Name:", self.name)
def display_gender(self):
print("Gender:", self.gender)
def display_age(self):
print("Age:", self.age)
def display_profession(self):
print("Profession:", self.profession)
def display_all(self):
self.display_name()
self.display_gender()
self.display_age()
self.display_profession()
class Student(Person):
def __init__(self, name, gender, age, profession, school, major, grade):
super().__init__(name, gender, age, profession)
self.school = school
self.major = major
self.grade = grade
def set_school(self, school):
self.school = school
def set_major(self, major):
self.major = major
def set_grade(self, grade):
self.grade = grade
def display_school(self):
print("School:", self.school)
def display_major(self):
print("Major:", self.major)
def display_grade(self):
print("Grade:", self.grade)
def display_all(self):
super().display_all()
self.display_school()
self.display_major()
self.display_grade()
# Example usage
person1 = Person("Alice", "Female", 25, "Engineer")
person1.display_all()
student1 = Student("Bob", "Male", 20, "Student", "XYZ University", "Computer Science", "Sophomore")
student1.display_all()
```
这个程序定义了两个类:`Person` 和 `Student`。`Person` 是一个基类,包含了姓名、性别、年龄和职业四个属性,以及设置和显示这些属性的方法。`Student` 是 `Person` 的一个派生类,增加了学校、专业和年级三个属性,以及相应的设置和显示方法。`Student` 也重载了 `display_all` 方法,以便显示所有属性。
在示例中,首先创建了一个 `Person` 对象 `person1`,然后调用了它的 `display_all` 方法,显示了所有属性。接着创建了一个 `Student` 对象 `student1`,并调用了它的 `display_all` 方法,也显示了所有属性,包括新增的学校、专业和年级。
阅读全文