day11面向對象 多態 靜態方法 (三)

多繼承
class 類名(父類1,父類2)  ----- 默認使用第一個父類
 
重寫父類方法
方法名和父類方法名同樣
當父類和子類的方法名重名時,默認使用的是子類中的方法
 
 
調用被重寫的父類的方法
    父類名.方法名(self)
    super().方法ming()      使用super最好吧繼承面調出來  類名._mro_   當前類的下一個類的方法
     super(類名,self).dark()  指定類的下一個類的方法
 
 
調用父類的魔法方法
     添加一些  方法
 
 
多態的概念
    鴨子類型
   
    不一樣的子類調用相同的父類的方法,      能夠增減代碼的靈活 體現代碼效果的多種形態
    多態是以繼承和重用代碼方法爲前提     繼承關係 子類的方法名和父類同樣
 
實例屬性 和實例方法
    self.屬性    對象的屬性   實例化屬性
    方法(self)    對象的方法   實例化方法     
    實例化屬性 經過實例化方法去改 
   建立一個對象就開闢一個空間
 
 
類屬性 和類對象
  類名就是 類對象
 類屬性   變量名 = 值   #  類的屬性  =    值    --------   在內存中只有一份  能夠給多個數據共享      在類外面該  ;  修改類的屬性    -----   類對象.屬性 = 值
                       在類裏面改  :   要經過類的方法去改
  類的屬性能夠根據類的對象去修改
    節約內存 
    類的方法的格式
       @classmmethod
     def  對象名(cls):
          cls.money -------------  類的屬性
   調用類方法  
 
    類名.方法名()     不規範調用   對象.方法名------  類屬性數據共享對象能夠調用
 
靜態方法     不須要傳遞參數  ,  內存中只有一次   沒有self  沒有cls
  @staticmethod
        def  方法名()
調用 
類名.方法名
   實例屬性 要求每一個對象爲其單獨開闢一分內存空間 來記錄數據嗎\, 而 類屬性爲全類所共有,進展用一分內存,更加節省內存空間
 
 
私有屬性
  格式  __屬性   加兩個下劃線
  做用  :  爲了不髒數據  保護屬性的安全
     在外部不容許改
     私有的屬性在類外不能被訪問    在類裏面容許改  能夠被訪問
    私有的方法只能在類裏面能夠用   
私有方法  
    在方法前面加了兩個下劃線   
   私有方法只能在類內部使用
 
私有方法和私有屬性設計目的
     
        保護數據或操做的安全性
        向使用者隱藏核心開發細節
 
單例模式
  建立多個對象  內存中只開闢一個空間
      instance  == none  標識沒有建立過對象
相關文章
相關標籤/搜索