Python面向对象(继承)

Posted 嘟嘟嘟啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象(继承)相关的知识,希望对你有一定的参考价值。

面向对象三大特性:继承

 1 class F:
 2     def f1(self):
 3         print("F.f1")
 4 
 5     def f2(self):
 6         print("F.f2")
 7 
 8 class S(F):#子类继承父类
 9     def s1(self):
10         print("S.s1")
11 
12 obj = S()
13 
14 obj.s1()
15 obj.f1()#继承了父类的方法

子类对象继承了父类的方法。

执行结果:

S.s1
F.f1

Process finished with exit code 0

 

覆盖父类中的方法

 1 class F:
 2     def f1(self):
 3         print("F.f1")
 4 
 5     def f2(self):
 6         print("F.f2")
 7 
 8 class S(F):
 9     def s1(self):
10         print("S.s1")
11 
12     def f2(self):#覆盖掉父类的方法f2
13         print("S.f2")
14 
15 obj = S()
16 
17 obj.f1()#继承了父类的方法
18 
19 obj.f2()#继承了父类的方法,但是子类中有相同的方法则使用子类的方法
20 
21 print("############################################################################################")
22 
23 dui = S()
24 dui.s1() #s1中self是形参,指代dui
25 dui.f1()#其中self指代dui,即调用方法的对象

子类中有与父类相同的方法则使用子类自己的方法。

执行结果:

F.f1
S.f2
############################################################################################
S.s1
F.f1

Process finished with exit code 0

 

super:父类和子类相同的方法都执行

 1 class F:
 2     def f1(self):
 3         print("F.f1")
 4 
 5     def f2(self):
 6         print("F.f2")
 7 
 8 class S(F):
 9     def s1(self):
10         print("S.s1")
11 
12     def f2(self):#覆盖掉父类的方法f2
13         super(S, self).f2()#当前类名、self   执行父类的f2方法
14         print("S.f2")
15         F.f2(self)#执行父类的f2方法
16 
17 obj = S()
18 obj.f2()

13行和15行的结果一样,推荐使用super方法。

执行结果:

F.f2
S.f2
F.f2

Process finished with exit code 0

 

以上是关于Python面向对象(继承)的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象特性 - 继承

Python面向对象-11.继承介绍

请解释python面向对象中的继承

Python面向对象之:三大特性:继承,封装,多态。

19.Python面向对象之:三大特性:继承,封装,多态。

Python 面向对象继承