python编写程序,创建基类Person,其成员包括实例属性name和age,实例方法setName()和setAge()分别用来给实例属性赋值,实例方法show()用来输出实例属性name和age的值;创建派生类Student,继承Person类,新增实例属性major(专业),新增实例方法setMajor()用来给实例属性major赋值,重写基类的实例方法show()输出所有实例属性的值。利用__init__()构造方法完成Person和Student类的对象初始化工作,并编写测试代码。
时间: 2024-03-10 15:45:26 浏览: 154
好的,这是一个比较基础的面向对象编程的问题。下面是代码实现:
```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)
```
我们定义了一个基类Person,其中有实例属性name和age,以及实例方法setName()和setAge()分别用来给实例属性赋值,实例方法show()用来输出实例属性name和age的值。然后我们创建派生类Student,继承Person类,并新增实例属性major(专业),新增实例方法setMajor()用来给实例属性major赋值,重写基类的实例方法show()输出所有实例属性的值。
在类定义完成后,我们可以编写测试代码进行验证:
```python
person = Person("Tom", 18)
person.show()
print("=====")
student = Student("Jerry", 20, "Computer Science")
student.show()
```
输出结果如下:
```
Name: Tom
Age: 18
=====
Name: Jerry
Age: 20
Major: Computer Science
```
我们先创建了一个Person类的对象person,并给其中的name和age属性赋值,然后调用show()方法来输出属性的值。接着创建了一个Student类的对象student,同样给其中的name、age和major属性赋值,并调用show()方法输出所有属性的值。可以看到,输出结果符合我们的预期。
阅读全文