Python 10-4——重寫父類的方法
對於父類方法,只要不符合子類模擬的實物行為,都可對其進行重寫。可在子類中定義一個跟父類同名的方法即可實現。
程式碼中通過重寫狗的年齡增加方法,實現確認是否是小狗的效果;
1、定義狗的父類,包含名字,年齡屬性;定義父類的方法以期實現改名和年齡遞增的效果;
2、定義子類小狗,繼承父類屬性並定義小狗在哭的特有行為;重寫了父類中的年齡遞增方法,指出遞增後的狗是不是小狗且列印提示資訊;
3、建立例項,確認重寫的方法有效;
建立了兩個例項,想看看不同的年齡和遞增年齡是否會出現預期的效果;直接列印並呼叫遞增方法,發現值為None。究其原因發現時方法中並未給函式返回值,函式不會自動返回值所以為空。
直接列印小狗例項年齡資訊,均符合預期;
對重寫的方法,新增return語句,返回屬性值;再次呼叫方法並列印出現了期望中的效果。超出預料的是,只要繼承父類屬性且有初始值,就可返回self.形參的值且不會出錯,屬性值相當於函式中的變數,只要被定義就可返回。
相關文章
- 子類重寫父類的方法@Override的快捷鍵IDE
- Java中父類方法重寫有哪些需要注意的?Java
- python過載父類的__init__方法Python
- JavaBean重寫Object類中的方法JavaBeanObject
- java 新建立的類要重寫的方法Java
- 捉蟲記之dozer對映父類屬性被重寫
- 子類繼承父類(父類和子類裡:塊、靜態塊、構造和方法覆寫)之間呼叫順序繼承
- java關於繼承父類,需要實現父類中的構造方法Java繼承構造方法
- Python中有重寫和過載的方法嗎?Python
- python繼承和重寫init方法Python繼承
- python3 筆記19.類的繼承和重寫、新增新方法Python筆記繼承
- 方法重寫
- 如何理解Python3中的子類和父類?Python
- 子類繼承父類的建構函式(方法)嗎?繼承函式
- java之方法的重寫Java
- C#中基類的重寫C#
- 重寫equals()方法時,需要同時重寫hashCode()方法
- python繼承和重寫init方法--例項Python繼承
- c# abstract抽象類_非抽象類_virtual_虛方法_override重寫C#抽象IDE
- java方法的神奇修改(重寫)Java
- 【iOS】category重寫方法的呼叫iOSGo
- 如何使用python super函式呼叫父類?Python函式
- 從jvm角度看懂類初始化、方法過載、重寫。JVM
- 從jvm角度看懂類初始化、方法重寫、過載。JVM
- 方法重寫(Override)IDE
- java 方法重寫概念Java
- Python的類方法Python
- 類的繼承_子類繼承父類繼承
- 父類和子類物件的獲取值的方式驗證,透過父類屬性的方式獲取不到值,需要使用get方法物件
- Behavior.TemplateMethod模板方法模式:共同方法提升至父類模式
- [python]為什麼父類的值沒有改變Python
- 建議重寫equals方法時也一併重寫hashCode方法
- Java重寫equals方法時為什麼要重寫hashcode方法Java
- 繼承 重寫和抽象類繼承抽象
- python3父類需要繼承object嗎?Python繼承Object
- 方法重置和重寫的區別
- 在 C++ 中子類繼承和呼叫父類的建構函式方法C++繼承函式
- 在C++中子類繼承和呼叫父類的建構函式方法C++繼承函式