python多态_Python面向对象教程之多态
生活随笔
收集整理的這篇文章主要介紹了
python多态_Python面向对象教程之多态
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天給大家介紹面向對象最后一個重要的特性——多態。如果想溫習前兩個重要特性(繼承和封裝),可以點開:《Python面向對象教程之基本概念》、《Python面向對象教程之單繼承》、《Python面向對象教程之多繼承》以及《Python面向對象教程之封裝》。
多態從代碼的角度理解的話,就是子類的方法覆蓋了基類的同名方法,即重定義;從實際場景理解的話,就是同一種說法有著不同的用途。
為方便理解,假設這么一個場景:一個父親有兩個孩子,但這三個人都會掙錢,但掙的錢不一樣多,那么該如何去實現這種功能呢?
首先看類的定義:
class Father(): # 基類的定義def earn_money(self): return 15000 # 掙15000class Son1(Father): # 第一個子類的定義def earn_money(self):return 7000 # 掙7000class Son2(Father): # 第二個子類的定義def earn_money(self):return 6000 # 掙6000接著看結果:
# 首先分別實例化三個類 dashuai = Father() xiaoming = Son1() xiaohua = Son2()# 打印相應的結果 print(dashuai.earn_money()) # 返回15000 print(xiaoming.earn_money()) # 返回7000 print(xiaohua.earn_money()) # 返回6000很顯然,由于三個人都會掙錢,所以在代碼中的體現是都有earn_money這個方法的。但是,三個類的對象調用的方法返回了三個不同的值,很顯然子類的方法“重寫”了基類的方法,多態這個特性也因此得以體現。
顯而易見的是,多態使得代碼更為靈活,因為子類可以覆蓋基類的方法;當然,也使得代碼容易拓展。
好了,今天的分享就到這了。如果有需要對Python其他知識點進行講解的話,可以在后臺留言給我~
本文轉自微信公眾號:superdiao的果殼
喜歡的朋友可以去關注(關注后有福利哦~),記得先給本文點贊或者點喜歡吶!
http://weixin.qq.com/r/szlobI7EPkZCKcoPb2w3 (二維碼自動識別)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python多态_Python面向对象教程之多态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 段错误 (核心已转储)_向大厂看齐!为自
- 下一篇: a*算法的优缺点_五种聚类算法一览与py