Python中类的继承详解
类的继承可以看作对类的属性和方法的重复利用,能够大大降低编码量。本文将为大家介绍Python中类的继承相关资料,并根据案例编码进行详细讲解,希望可以对大家有所帮助。

一、单继承
继承的主要功能是促进编码的重复利用。继承导致子类具有父类的方法和特性。
下面举个例子:
class Animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class Dog(Animal):
def dark(self):
print("汪汪叫")
goudan=Dog()
goudan.eat()
goudan.drink()
从上述代码可以看出,即使是在编写Dog类的情况下,我们也没有重新对eat和drink这两个方法进行编写。我们只需在Dog后面的括号中再加上构造函数的名称,就可以让子类继承父类的构造函数了。当子类继承构造函数后,就能直接使用构造函数中的方法了。在本例中,goudan可以直接使用Animal类中的eat和drink这两个方法。
此外,非常神奇的一点是,继承是具有传递性的。子类不仅具有父类的方法和特性,还具备构造函数的构造函数具有的特性。
二、继承中的方法重写
有时,构造函数中的方法根本无法满足子类的需求。这时我们就需要对方法进行重写。子类方法重写主要有两种情况:
- 遮盖父类的方法
- 对父类的方法进行拓展
一类最简单的方法是直接重新对应的方法。下面的代码对drink这个方法进行了重写。当使用goudan调用drink方法时,输出的结果不是喝,而是用嘴巴喝水。
class Animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class Dog(Animal):
def drink(self):
print("用嘴巴喝水")
def dark(self):
print("汪汪叫")
goudan=Dog()
goudan.eat()
goudan.drink()
当我们要求不只是遮盖构造函数中的方法,而是在构造函数方法的前提下对方法进行拓展。实际做法是:
- 根据子类的需求编写特定代码
- 应用super()继承构造函数里的方法
下面举个例子,此时goudan在调用drink方法时,会输出喝和用嘴巴喝水这两个结果。
class Animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class Dog(Animal):
def drink(self):
#1.根据子类的需求编写特定代码
print("用嘴巴喝水")
#2.应用super()继承构造函数里的方法
super().drink()
def dark(self):
print("汪汪叫")
goudan=Dog()
goudan.eat()
goudan.drink()
三、多继承
对于Python来说,一个子类可以有多个构造函数,多继承的基础语法非常简单。
下面举个例子:
class A():
def test(self):
print("test")
class B():
def demo(self):
print("demo")
class C(A,B):
pass
c=C()
c.test()
c.demo()
以上就是本文对Python中类的继承的详细介绍,请小伙伴们多加借鉴。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5771.html
