當子類和父類都存在相同的run()方法時,我們說,子類的run()覆蓋了父類的run(),在**執行的時候,總是會呼叫子類的run()。這樣,我們就獲得了繼承的另乙個好處:多型。
a = list() # a是list型別
b = animal() # b是animal型別
c = dog() # c是dog型別
判斷乙個變數是否是某個型別可以用isinstance()判斷:
>>> isinstance(a, list)
true
>>> isinstance(b, animal)
true
>>> isinstance(c, dog)
true
看來a、b、c確實對應著list、animal、dog這3種型別。不過仔細想想,這是有道理的,因為dog是從animal繼承下來的,當我們建立了乙個dog的例項c時,我們認為c的資料型別是dog沒錯,但c同時也是animal也沒錯,dog本來就是animal的一種!
Python物件導向 多型
什麼是多型?多型就是一種事物有多種形態,比如說動物,有 貓 狗 老鼠 獅子 大象等。多型的好處 比如我們在新建立類時我們可以繼承動物類,動物類中的方法可以重寫,也可以不重寫,當我們新增時,只是新增乙個animals類而不需要再去修改父類 裡的內容,只需要呼叫就可以了。多型的最基本的實現就是通過繼承來...
核心程式設計(七) 物件導向 多型
多型,什麼叫多型?多型拆開就是多種狀態 什麼是多種狀態呢?姑娘還有兩副面孔呢 o 嗷 怎麼說呢?多種狀態更純粹更現實的來說 就是要對不一樣的物件有不一樣的處理方法 比如說你的電腦裡有乙個wps軟體是吧 當你雙擊乙個pdf檔案,或者雙擊乙個doc檔案的時候 其實都是先開啟wps軟體,然後看看是什麼樣子...
Python物件導向08 多型
物件導向三大特性 封裝根據職責將屬性和方法封裝到乙個抽象的類中 繼承實現 的重用,相同的 不需要重複的編寫 多型不同的子類物件呼叫相同的父類方法,產生不同的執行結果 需求 在dog類中封裝方法game 定義xiaotiandog繼承自dog,並且重寫game方法 定義person類,並且封裝乙個和狗...