面向對象--子類重寫父類的同名屬性和方法


子類重寫父類的同名屬性和方法


class Master(object): def __init__(self): self.kongfu = "古法煎餅果子配方" def make_cake(self): print("[古法] 按照 <%s> 制作了一份煎餅果子..." % self.kongfu) class School(object): def __init__(self): self.kongfu = "現代煎餅果子配方" def make_cake(self): print("[現代] 按照 <%s> 制作了一份煎餅果子..." % self.kongfu) class Prentice(School, Master): # 多繼承,繼承了多個父類 def __init__(self): self.kongfu = "貓氏煎餅果子配方" def make_cake(self): print("[貓氏] 按照 <%s> 制作了一份煎餅果子..." % self.kongfu) # 如果子類和父類的方法名和屬性名相同,則默認使用子類的 # 叫 子類重寫父類的同名方法和屬性 damao = Prentice() print(damao.kongfu) # 子類和父類有同名屬性,則默認使用子類的 damao.make_cake() # 子類和父類有同名方法,則默認使用子類的 # 子類的魔法屬性__mro__決定了屬性和方法的查找順序 print(Prentice.__mro__) 

劇情發展:

大貓的新配方大受歡迎,但是有些顧客希望也能吃到古法配方和 現代配方 的煎餅果子...(子類調用父類的同名屬性和方法)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM