不少人喜歡將多態與多態性兩者混爲一談,而後百思不得其解,其實只要分開看,就會很明朗。函數
多態指的是一類事物有多種形態,(一個抽象類有多個子類,於是多態的概念依賴於繼承)對象
文件有多種形態:文件、文本文件、可執行文件blog
(1)什麼是多態性(注意:多態與多態性是兩種概念)繼承
多態性是指具備不一樣功能的函數可使用相同的函數名,這樣就能夠用一個函數名調用不一樣內容的函數。在面向對象方法中通常是這樣表述多態性:向不一樣的對象發送同一條消息,不一樣的對象在接收時會產生不一樣的行爲(即方法)。也就是說,每一個對象能夠用本身的方式去響應共同的消息。所謂消息,就是調用函數,不一樣的行爲就是指不一樣的實現,即執行不一樣的函數。接口
綜上能夠說,多態性是一個接口(函數func),多種實現(如f.click())字符串
其實你們從上面多態性的例子能夠看出,咱們並無增長上面新的知識,也就是說Python自己就是支持多態性的,這麼作的好處是什麼呢?
(1)增長了程序的靈活性
以不變應萬變,不論對象變幻無窮,使用者都是同一種形式去調用,如func(animal)
(2)增長了程序額可擴展性
經過繼承animal類建立了一個新的類,使用者無需更改本身的代碼,仍是用func(animal)去調用class
注:cli
多態:同一種事物的多種形態,動物分爲人類,豬類(在定義角度) 多態性:一種調用方式,不一樣的執行效果(多態性)擴展