學習筆記總結


1) 私有屬性和方法:

     私有屬性,只能在類的內部方法中訪問。

     如何私有化:在屬性名或方法名的前面,添加‘_ _’符號

     如果要訪問私有的方法和屬性:需要提供一個非私有(公共函數)的方法來訪問或修改屬性值。


2) 繼承:

       原則:子類從父類中繼承所有屬性和方法, 在訪問父類的方法:

          1、super().方法名( )

          2、在父類的方法中,可以通過self來訪問子類中的屬性    【前提: 實例化子類對象】

 

2、在子類的構造函數中,調用父類的構造函數的情況:

 2.1) 如果子類中沒有__init__函數,在創建子類對象,會默認調用父類的__init__函數。

 2.2) 如果子類中有__init__函數,在創建子類對象,只會調用子類中的__init__函數。

     2.2.1) super(子類名, self).__init__(參數)調用父類的__init__函數,如果有多個父類,默認調用第一個父類的__init__函數

     2.2.2)父類名.__init__(self, 參數)強制調用指定父類的__init__函數

 

爲什麼調用父類__init__函數?

        只有一個目的: 初始化綁定 父類中的屬性(父類中有多個屬性),爲了在子類中能夠直接訪問

 3) 多態性

   同屬一類的多個子類中(繼承),重寫了父類的函數/方法(重寫)在定義某一特定函數時,只聲明父類的對象,在使用時可以傳入子類的對象,在特定函數中,會自動調用子類中重寫父類的函數。

Class Printer:

    Def print_txt(Printer)

 

class DelPrinter(Printer):

      def print_txt(self, txt): 重寫父類的函數

class HPPrinter(Printer):

      def print_txt(self, txt):重寫父類的函數

 

def print_(prnter, txt) #特定功能的函數

     Printer.print_txt(#) 會自動調用子類中的重寫父類的print_txt()函數

 

說明:面向對象編程中,對象有三大特性:封裝性,繼承,多態性

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章