Python 10-4——重寫父類的方法

weixin_33749242發表於2017-09-21

        對於父類方法,只要不符合子類模擬的實物行為,都可對其進行重寫。可在子類中定義一個跟父類同名的方法即可實現。

        程式碼中通過重寫狗的年齡增加方法,實現確認是否是小狗的效果;

1、定義狗的父類,包含名字,年齡屬性;定義父類的方法以期實現改名和年齡遞增的效果;

6495375-bc45cce2ab04f363.png

2、定義子類小狗,繼承父類屬性並定義小狗在哭的特有行為;重寫了父類中的年齡遞增方法,指出遞增後的狗是不是小狗且列印提示資訊;

3、建立例項,確認重寫的方法有效;

建立了兩個例項,想看看不同的年齡和遞增年齡是否會出現預期的效果;直接列印並呼叫遞增方法,發現值為None。究其原因發現時方法中並未給函式返回值,函式不會自動返回值所以為空。

6495375-585806d6fa68d8b1.png

直接列印小狗例項年齡資訊,均符合預期;

6495375-0a31bd0ee9f05b59.png

        對重寫的方法,新增return語句,返回屬性值;再次呼叫方法並列印出現了期望中的效果。超出預料的是,只要繼承父類屬性且有初始值,就可返回self.形參的值且不會出錯,屬性值相當於函式中的變數,只要被定義就可返回。

6495375-39484cde7517fc17.png

相關文章