跳到主要内容

面向对象中super的作用?

参考答案:

在面向对象编程中,super关键字主要用于调用父类(或超类)的方法。这在子类需要扩展或修改父类方法的行为时特别有用。使用super关键字,子类可以明确地调用其父类的方法,而不是仅仅依赖于自己的实现。

在Python中,super()函数通常在子类的__init__方法中使用,以确保父类的初始化方法被正确调用。这有助于避免因为子类没有正确初始化而引发的问题。

下面是一个简单的Python示例:

class Parent:
    def __init__(self):
        print("Parent's __init__ method")

    def display(self):
        print("Parent's display method")

class Child(Parent):
    def __init__(self):
        super().__init__()  # 调用父类的__init__方法
        print("Child's __init__ method")

    def display(self):
        super().display()  # 调用父类的display方法
        print("Child's display method")

c = Child()
c.display()

在这个示例中,Child类继承自Parent类。在Child类的__init__方法中,使用super().__init__()来调用Parent类的__init__方法。同样,在Child类的display方法中,使用super().display()来调用Parent类的display方法。

当你运行这个示例时,你会看到以下输出:

Parent's __init__ method
Child's __init__ method
Parent's display method
Child's display method

这证明了super关键字在调用父类方法时的作用。

需要注意的是,super()函数不仅限于在__init__方法中使用。你可以在子类的任何方法中使用super()来调用父类的相应方法。但是,过度使用super()可能会使代码变得难以理解和维护,因此在使用时应谨慎。