python多态_Python面向对象教程之多态
今天給大家介紹面向?qū)ο笞詈笠粋€(gè)重要的特性——多態(tài)。如果想溫習(xí)前兩個(gè)重要特性(繼承和封裝),可以點(diǎn)開(kāi):《Python面向?qū)ο蠼坛讨靖拍睢贰ⅰ禤ython面向?qū)ο蠼坛讨畣卫^承》、《Python面向?qū)ο蠼坛讨嗬^承》以及《Python面向?qū)ο蠼坛讨庋b》。
多態(tài)從代碼的角度理解的話,就是子類的方法覆蓋了基類的同名方法,即重定義;從實(shí)際場(chǎng)景理解的話,就是同一種說(shuō)法有著不同的用途。
為方便理解,假設(shè)這么一個(gè)場(chǎng)景:一個(gè)父親有兩個(gè)孩子,但這三個(gè)人都會(huì)掙錢,但掙的錢不一樣多,那么該如何去實(shí)現(xiàn)這種功能呢?
首先看類的定義:
class Father(): # 基類的定義def earn_money(self): return 15000 # 掙15000class Son1(Father): # 第一個(gè)子類的定義def earn_money(self):return 7000 # 掙7000class Son2(Father): # 第二個(gè)子類的定義def earn_money(self):return 6000 # 掙6000接著看結(jié)果:
# 首先分別實(shí)例化三個(gè)類 dashuai = Father() xiaoming = Son1() xiaohua = Son2()# 打印相應(yīng)的結(jié)果 print(dashuai.earn_money()) # 返回15000 print(xiaoming.earn_money()) # 返回7000 print(xiaohua.earn_money()) # 返回6000很顯然,由于三個(gè)人都會(huì)掙錢,所以在代碼中的體現(xiàn)是都有earn_money這個(gè)方法的。但是,三個(gè)類的對(duì)象調(diào)用的方法返回了三個(gè)不同的值,很顯然子類的方法“重寫”了基類的方法,多態(tài)這個(gè)特性也因此得以體現(xiàn)。
顯而易見(jiàn)的是,多態(tài)使得代碼更為靈活,因?yàn)樽宇惪梢愿采w基類的方法;當(dāng)然,也使得代碼容易拓展。
好了,今天的分享就到這了。如果有需要對(duì)Python其他知識(shí)點(diǎn)進(jìn)行講解的話,可以在后臺(tái)留言給我~
本文轉(zhuǎn)自微信公眾號(hào):superdiao的果殼
喜歡的朋友可以去關(guān)注(關(guān)注后有福利哦~),記得先給本文點(diǎn)贊或者點(diǎn)喜歡吶!
http://weixin.qq.com/r/szlobI7EPkZCKcoPb2w3 (二維碼自動(dòng)識(shí)別)
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python多态_Python面向对象教程之多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 段错误 (核心已转储)_向大厂看齐!为自
- 下一篇: a*算法的优缺点_五种聚类算法一览与py