1. 多態(tài)
關(guān)于多態(tài),多態(tài)就是上面兩種方式的結(jié)合,通過多態(tài)我們可以寫出各種各樣的程序。
看下圖:
多態(tài)即一個(gè)方法在父類和子類中存在著不同種用法,可以分別調(diào)用。
看下面的例子:
class Base: def __init__(self,name): self.name =name print('%s會讀書'%self.name) def reading(self): print('%s在讀語文書'%self.name) class Inherit_One(Base): def reading(self): print('%s在讀英語書'%self.name) class Inherit_Two(Base): def reading(self): print('%s在看漫畫書'%self.name) a = Base('a') a.reading() b = Inherit_One('b') b.reading() c = Inherit_Two('c') c.reading()
輸出結(jié)果為:
a會讀書 a在讀語文書 b會讀書 b在讀英語書 c會讀書 c在看漫畫書
可以看出每個(gè)繼承者都重寫了reading方法,然后我們在調(diào)用這個(gè)方法的時(shí)候通過不同的類去調(diào)用,這種方式可以幫助我們在不同類中定義相同名字的不同方法,看似混亂,但是在我們現(xiàn)實(shí)中的各種管理系統(tǒng)當(dāng)中往往都是離不開多態(tài)的使用。
通過這幾節(jié)的學(xué)習(xí),想必大家都認(rèn)識到了繼承和重寫的方法,關(guān)于多態(tài)則需要大家在實(shí)際問題中去多多練習(xí)掌握,面向?qū)ο舐犉饋肀容^抽象,但掌握起來并不太難。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程