關(guān)于繼承、重寫和多態(tài)這三種類型,我們在日常使用過程中使用最多的是繼承,當(dāng)我們需要很多類似的子類的時(shí)候,如果我們一一定義會浪費(fèi)我們很多的空間和時(shí)間,在這個(gè)時(shí)候我們只要定義一個(gè)父類,也就是定義一個(gè)模板,然后全部繼承父類的屬性和行為即可,工廠在批量生產(chǎn)某個(gè)機(jī)械配件的時(shí)候,并不是每生產(chǎn)一個(gè)都需要畫一個(gè)圖紙,而是根據(jù)一個(gè)圖紙進(jìn)行批量生產(chǎn),我們在程序里使用繼承的時(shí)候也是采用的這種思想,但是當(dāng)我們想要對某個(gè)繼承來的配件進(jìn)行一定更改的時(shí)候,我們可以采用重寫的方法,而多態(tài)則是綜合了繼承和重寫,下面我們依次進(jìn)行學(xué)習(xí)。
1. 繼承
所謂繼承,就是子繼承父。
根據(jù)例題我們來學(xué)習(xí)一下繼承。
class Base:#定義一個(gè)名為Base的父類 def __init__(self,name,age,id): self.name = name self.age = age self.id = id print('繼承了Base這個(gè)類') print('我的名字:',self.name) print('我的年齡:',self.age) print('我的學(xué)號:',self.id) def goto_school(self): print(self.name,'正在使用Base類中的goto_school方法去上學(xué)') class Student(Base):#繼承父類的時(shí)候會繼承父類中的所有方法 pass xiaoming = Student('小明',20,1001) xiaoming.goto_school()
輸出結(jié)果為:
繼承了Base這個(gè)類 我的名字: 小明 我的年齡: 20 我的學(xué)號: 1001 小明 正在使用Base類中的goto_school方法去上學(xué)
我們來分析一下這個(gè)例子,首先我們在上面定義了一個(gè)名為Base的類,這個(gè)類為我們提供了一個(gè)構(gòu)造方法,包含了姓名,名字和學(xué)號,然后還提供了一個(gè)goto_school()的方法,然后我們又在下面定義一個(gè)名為Student的類,這個(gè)類繼承了上面的Base類,然后我們直接調(diào)用Student類,通過輸出結(jié)果我們可以看出即使Student類中什么都沒有,仍然可以執(zhí)行出一系列操作,這些行為和屬性都是由Base中繼承而來的,然后最后一行我們還調(diào)用了Base中的方法,仍然是可以調(diào)用成功的。
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)課程