标签:python python面向对 相同 对象 div 覆盖 继承 方法 col
面向对象三大特性:继承
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面向对 相同 对象 div 覆盖 继承 方法 col
原文地址:https://www.cnblogs.com/112358nizhipeng/p/9818054.html