Python 继承

继承简介

在面向对象编程中,继承是一种重要的概念。继承是指一个类可以从另一个类中继承属性和方法。被继承的类称为父类(或超类),继承的类称为子类。子类可以使用父类中的属性和方法,同时可以根据需要重写或扩展这些属性和方法。

Python 中使用 class 关键字定义类,可以明确指定该类的父类。在定义子类时,使用括号将父类括起来,如下所示:

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

class Student(Person):

def __init__(self, name, age, grade):

super().__init__(name, age)

self.grade = grade

在上面的示例中,Person 是父类,Student 是子类。子类 Student 继承了父类 Person 中的所有属性和方法。在子类中调用父类的方法时,可以使用内置函数 super()

多重继承

Python 中支持多重继承,即一个子类可以从多个父类中继承属性和方法。

多重继承的语法如下所示:

class Student(Person, Worker):

def __init__(self, name, age, grade, company):

Person.__init__(self, name, age)

Worker.__init__(self, company)

self.grade = grade

在上面的示例中,子类 Student 继承了父类 PersonWorker 中的所有属性和方法。

需要注意的是,super() 函数默认只调用第一个父类中的同名方法。如果需要调用多个父类中的同名方法,可以使用 super() 函数的第二个参数来指定调用顺序,如下所示:

class A:

def work(self):

print("A")

super().work()

class B:

def work(self):

print("B")

class C(A, B):

def work(self):

print("C")

super().work(B)

if __name__ == '__main__':

c = C()

c.work()

在上面的示例中,子类 C 继承了父类 AB 中的方法 work(),并重写了该方法。由于 C 继承了两个父类中的同名方法,所以在重写该方法时需要使用 super() 函数的第二个参数来指定调用哪个父类中的方法。

继承的作用

继承是面向对象编程中的重要概念之一,它的作用如下所示:

复用父类的代码

子类可以继承父类中的所有属性和方法。这样,子类就不需要重复编写与父类相同的代码,提高了代码复用性。

扩展父类的功能

子类可以重写父类的方法,也可以在子类中定义新的方法和属性,从而扩展了父类的功能。这样,代码的灵活性和可扩展性也得到了提高。

实现多态性

由于子类可以重写父类的方法,所以多个对象可以使用相同名称的方法,但是方法的实现可能不同。这种机制称为多态性,是面向对象编程中的重要概念之一。

总结

继承是面向对象编程中的重要概念,它可以复用父类的代码,扩展父类的功能,实现多态性等。Python 中使用 class 定义类,可以明确指定该类的父类。需要注意的是,super() 函数默认只调用第一个父类中的同名方法,如果需要调用多个父类中的同名方法,可以使用 super() 函数的第二个参数来指定调用顺序。

后端开发标签