1. 程式人生 > >父類中的方法被覆蓋以及子類調用父類覆蓋的方法

父類中的方法被覆蓋以及子類調用父類覆蓋的方法

實現 python 函數 調用 self. exe over obj 同名

覆蓋 override
  覆蓋是指在有繼承關系的類中,子類中實現了與基類同名的方法,在子類的實例調用該方法時,實際調用的是
  子類中的覆蓋版本,這種現象叫做覆蓋


調用super 函數的兩個方法:
  1.super(cls, obj) 返回綁定超類的實例(要求obj必須是cls類型的實例)
  2.super() 返回綁定超類的實例,等同於: super(__class__, 實例方法的第一個參數), 必須在方法內調用

作用:
  可以用super() 返回的實例間接調用其父類的覆蓋方法

class A:
   def work(self):
     print("A.work")
class
B(A): def work(self): print("B.work") def super_work(self): self.work() #調用父類的work方法 super(B, b).work() super().work() #這種調用父類的方法只能在方法中調用 super(self.__class__, self).work() b = B() b.work() print("------") A.work(b) #對象b調用A類裏面的work方法 print
("++++++") super(B, b).work() print("******") b.super_work() 輸出結果; tarena@tedu:~/zengsf/824$ python3 exercise824_2.py B.work ------ A.work ++++++ A.work ****** B.work A.work A.work A.work

父類中的方法被覆蓋以及子類調用父類覆蓋的方法