实验5 继承与派生
时间: 2023-12-03 21:43:32 浏览: 132
C++实验继承与派生
继承是面向对象编程中的一个重要概念,它实现了代码的重用和扩展性的增强。在继承中,一个子类可以继承一个或多个父类的属性和方法,并且可以在其基础上添加新的功能或修改原有的功能。
派生是指从已有类(父类)派生出新类(子类),并在新类中添加新的成员变量和成员方法。子类可以访问父类中的所有成员(除了私有成员),并且可以重写父类中的方法以满足自己的需求。
在继承中,子类可以继承父类中的属性和方法,但是如果子类中定义了与父类中同名的属性或方法,则子类中的定义会覆盖父类中的定义。此时,如果要访问父类中被覆盖的属性或方法,可以使用 super 关键字。
下面是一个简单的继承和派生的示例:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def print_info(self):
print(f"Name: {self.name}, Age: {self.age}")
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def print_info(self):
super().print_info()
print(f"Grade: {self.grade}")
person = Person("Tom", 20)
person.print_info() # 输出:Name: Tom, Age: 20
student = Student("Jerry", 18, "Grade 12")
student.print_info() # 输出:Name: Jerry, Age: 18, Grade: Grade 12
```
在上面的示例中,Person 类定义了一个构造方法和一个 print_info 方法,Student 类继承了 Person 类,并添加了一个 grade 属性和一个 print_info 方法。在 Student 类的构造方法中,使用 super() 函数调用父类的构造方法,以便初始化父类中的属性。
在 Student 类的 print_info 方法中,使用 super() 函数调用父类的 print_info 方法,以便输出父类中的信息。然后再输出子类中的信息。
阅读全文