用python 编写程序,创建基类Person, 其成员包括实例属性name和age,实例方法setName()和setAge()分别用来给实例属性赋值,实例方法show()用来输出实例属性name和age的值;创建派生类Student,继承Person类,新增实例属性major(专业),新增实例方法 setMajor()用来给实例属性major赋值,重写基类的实例方法show()输出所有实例属性的值。利用_ _init_ _()构造方法完成Person和Student类的对象初始化工作,并编写测试代码。
时间: 2024-03-20 08:45:23 浏览: 149
好的,以下是Python代码实现:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def setName(self, name):
self.name = name
def setAge(self, age):
self.age = age
def show(self):
print("Name:", self.name)
print("Age:", self.age)
class Student(Person):
def __init__(self, name, age, major):
super().__init__(name, age)
self.major = major
def setMajor(self, major):
self.major = major
def show(self):
super().show()
print("Major:", self.major)
# 测试代码
p = Person("Tom", 18)
p.show() # 输出 Name: Tom, Age: 18
s = Student("Jerry", 20, "Computer Science")
s.show() # 输出 Name: Jerry, Age: 20, Major: Computer Science
```
解释一下代码:
- `Person` 是基类,其中 `__init__()` 方法用来初始化 `name` 和 `age` 实例属性,`setName()` 和 `setAge()` 方法用来给实例属性赋值,`show()` 方法用来输出实例属性 `name` 和 `age` 的值。
- `Student` 是派生类,继承了 `Person` 类,新增实例属性 `major` 和方法 `setMajor()`。其中 `__init__()` 方法中用 `super()` 调用基类的 `__init__()` 方法来初始化 `name` 和 `age` 实例属性,再添加 `major` 实例属性;`show()` 方法重写了基类的 `show()` 方法,输出所有实例属性的值。
- 测试代码中,先创建了一个 `Person` 类的对象 `p`,输出其 `name` 和 `age` 的值。然后创建了一个 `Student` 类的对象 `s`,输出其 `name`、`age` 和 `major` 的值。
阅读全文