脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 对python中类的继承与方法重写介绍

对python中类的继承与方法重写介绍

2021-05-19 00:10墨墨陌陌沫沫0 Python

今天小编就为大家分享一篇对python中类的继承与方法重写介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1.单继承

父类也叫基类

子类也叫派生类

如下所示,继承的关系:

对python中类的继承与方法重写介绍

继承的书写格式:

?
1
2
3
class 子类(父类):
 
     方法

实例:

?
1
2
3
4
5
6
7
8
9
10
class animal:
    def eat(self):
       print("-----吃-------")
    def drink(self):
       print("-----喝--------")
class dog(animal):
     def drak(self):
       print("汪汪叫")
a=animal()
a.eat()

孙类是可以继承爷爷类的,如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class dog(animal):
 def bark(self):
 print("---汪汪叫----")
 
class xiaotq(dog):
 def fly(self):
 print("----飞-----")
 
xiaotq = xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat()

2.重写

子类和父类中拥有方法名相同的方法,说明子类重写了父类的方法

重写的作用:父类中已经有了这个方法,但子类想修改里面的内容,直接修改父类是不好的,就需要用到重写

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class dog(animal):
 def bark(self):
 print("---汪汪叫----")
 
class xiaotq(dog):
 def fly(self):
 print("----飞-----")
 def bark(self):
 print("----狂叫-----")
 
xiaotq = xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat()

这样做,父类的方法是不会被调用的,需要用以下方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class animal:
 def eat(self):
 print("---吃-----")
 def drink(self):
 print("----喝-----")
 def sleep(self):
 print("----睡觉-----")
class dog(animal):
 def bark(self):
 print("---汪汪叫----")
 
class xiaotq(dog):
 def fly(self):
 print("----飞-----")
 def bark(self):
 print("----狂叫-----")
 #调用被重写的父类的方法
 #1 必须加上self
 dog.bark(self)
 #2
 super().bark()
 
xiaotq = xiaotq()
xiaotq.fly()
xiaotq.bark()
xiaotq.eat()

以上这篇对python中类的继承与方法重写介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/chenjuan0530/article/details/78480810

延伸 · 阅读

精彩推荐