设计一个学生类 student 和它的一个子类 undergraduate 。 要求如下:+ (1) Student 类有 name 和 age 属性,一个包含两个参数的构成方法,用于给 name 和 age 赋值,一个 show 方法打印 student 的信息(5分)。 (2)本科生类 undergraduate 增加一个 degree 属性,有一个包含三个参数的构造方法,前两个参数用于给继承的 name 和 age 属性赋值,第三个参数给 degree 专业赋值,个 show 方法用于打印 undergraduate 的属性信息(5分) (3)在测试类中分别创建 Student 和 undergraduate 对象,调用他们的 show 方法。
时间: 2023-09-13 16:05:18 浏览: 407
好的,我来为您解答这个问题。
下面是学生类 `Student` 和它的子类 `Undergraduate` 的代码实现:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def show(self):
print("Name:", self.name)
print("Age:", self.age)
class Undergraduate(Student):
def __init__(self, name, age, degree):
super().__init__(name, age)
self.degree = degree
def show(self):
super().show()
print("Degree:", self.degree)
```
在上面的代码中,`Student` 类有 `name` 和 `age` 两个属性,以及一个构造方法 `__init__` 和一个 `show` 方法来打印学生的信息。`Undergraduate` 类继承了 `Student` 类,并添加了一个 `degree` 属性和一个新的构造方法 `__init__`。它也重写了 `show` 方法,来打印本科生的属性信息。
下面是测试代码:
```python
s = Student("Tom", 20)
s.show()
print()
u = Undergraduate("Jerry", 22, "Computer Science")
u.show()
```
输出结果如下:
```
Name: Tom
Age: 20
Name: Jerry
Age: 22
Degree: Computer Science
```
在测试代码中,我们首先创建了一个 `Student` 对象 `s`,并调用了它的 `show` 方法。然后,我们创建了一个 `Undergraduate` 对象 `u`,并调用了它的 `show` 方法。可以看到,`Student` 类的 `show` 方法输出了 `name` 和 `age` 两个属性,而 `Undergraduate` 类的 `show` 方法输出了三个属性,包括 `degree` 专业。
阅读全文