日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

回顧

在Python進階記錄之基礎篇(十六)中,我們介紹了Python面向對象中對屬性的訪問限制,需要重點掌握私有變量和公有變量的區別和用法,牢記面向對象的編程規則。今天我們講一下Python面向對象中的另一個重要特點——繼承。

繼承的基本概念

繼承是面向對象的三個基本特征之一,當我們在定義一個類的時候,可以繼承某個已存在的類,新定義的類稱為子類,而被繼承的類稱為父類,也叫做基類或超類。

例如之前內容中我們定義類Student的時候,其實是繼承了Python中的基類object,我們稱Student繼承自object,Student是object的子類,object是Student的父類。

繼承可以使子類具有父類的各種屬性和方法,而不需要再次編寫相同的代碼。

Python面向對象之繼承、重寫與重載

繼承的基本概念

上述代碼中,我們首先定義了一個Person類,然后再定義一個Men類,并讓它繼承自Person類,Python中繼承的寫法就是在類名后的括號中寫入要繼承的類名。可以看到,雖然在類Men中,我們沒有寫任何代碼,但是由于它繼承自Person類,在創建Men對象的時候,我們可以傳入父類Person中的name和age屬性,并能使用父類的成員方法eat( )。

子類除了繼承父類的所有屬性和方法外,也能夠定義自己特有的屬性和方法。

Python面向對象之繼承、重寫與重載

子類定義特有的屬性和方法

我們給Men方法定義父類沒有的屬性post以及成員方法info( ),在初始化方法__init__( )中,為了繼承父類的屬性,我們需要調用父類的__init__( )方法,調用方式有以下兩種:

1、父類名.__init__(self, 各屬性名)
2、super(子類名, self).__init__(各屬性名)

當然,由于我們這里的Person類的屬性都定義成了私有變量,對于子類Men來說,其實并沒有繼承__name和__age,因為Person類的私有變量是不允許Person類外部調用的,子類只能繼承父類的公有變量。但我們仍然需要調用父類的__init__( )進行繼承,這樣才能更好地使用從父類繼承過來的成員方法。

重寫與重載

子類在繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類別的原有屬性和方法,使其獲得與父類別不同的功能。

Python面向對象之繼承、重寫與重載

方法重寫

以上代碼中,我們將父類Person中的name改成公有變量,然后在子類Men中也定義一個成員方法eat( )。可以看到,此時再調用eat( )方法,將調用子類Men中的eat( )方法。這種子類覆蓋父類方法的寫法我們就叫做方法的重寫。

如果你熟悉面向對象,那么你肯定知道除了重寫,還有一個重載的概念。重載是指在一個類里面,方法名字相同,而參數不同,參數不同可以是參數類型不同,也可以是參數個數不同。

Python面向對象之繼承、重寫與重載

方法重載的概念

我們在類Person中定義了兩個eat( )方法,一個接收一個參數,另一個接收兩個參數,這就是方法的重載。然而,當我們試圖調用一個參數的eat( )方法時,Python報錯了,它只承認接收兩個參數的eat( )方法。這是為什么呢?

事實上,Python根本不需要方法的重載。我們知道,重載主要是參數類型不同或參數個數不同。對于參數類型不同,因為Python可以接受任何類型的參數,不同的參數類型在Python中是相同的代碼,所以沒有必要做成兩個不同函數。而對于參數個數不同,因為Python有缺省參數的功能,我們對于參數個數不確定的參數設定為缺省參數即可解決問題。

Python面向對象之繼承、重寫與重載

Python中的重載

我們將之前的兩個eat( )方法合并,只需將參數變為可變參數即可實現相關需求。由此可見,對于重載中參數不同的兩個要求都有對應的解決方案,Python自然就不需要方法重載了。

總結

以上內容介紹了Python面向對象中繼承的相關知識以及重寫和重載的區別和實現,需要重點掌握繼承的基本概念和用法,理解重寫和重載的區別。感謝大家的支持與關注,歡迎一起學習交流~
 

分享到:
標簽:Python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定