? ? ? ?類(lèi)是對(duì)有通用特征的事物的描述,有時(shí)需要的類(lèi)并不是需要重新建立而是可以使用原有的類(lèi)創(chuàng)建一個(gè)新的類(lèi)別玩讳,可以使用原有類(lèi)的屬性和方法儒洛,再添加自己的特有屬性和方法房维,這就是類(lèi)的繼承。原有的類(lèi)稱(chēng)為父類(lèi)每窖,而新類(lèi)稱(chēng)為子類(lèi)帮掉。
? ? ? ?以前邊課程中狗的類(lèi)為例,創(chuàng)建一個(gè)小狗的類(lèi)窒典,代碼如下:
1蟆炊、定義狗的父類(lèi):其中包含姓名、年齡屬性瀑志;定義了給小狗改名的方法涩搓;定義了讓小狗年齡在滿足限制條件時(shí)遞增的方法;
2劈猪、定義小狗的子類(lèi)并通過(guò)特殊方法實(shí)現(xiàn)父類(lèi)的繼承昧甘;
3、創(chuàng)建子類(lèi)的實(shí)例岸霹;
從代碼和運(yùn)行結(jié)果可知:
1疾层、定義子類(lèi)時(shí),父類(lèi)必須包含在當(dāng)前文件中且必須在前面贡避;不然出現(xiàn)要用的父類(lèi)未被定義的錯(cuò)誤痛黎;
2予弧、子類(lèi)中的__init__()方法接受創(chuàng)建父類(lèi)時(shí)的所有信息,包括姓名湖饱、年齡掖蛤。因?yàn)樽宇?lèi)和父類(lèi)有通用的屬性;
3井厌、super()是一個(gè)特殊的函數(shù)蚓庭,通過(guò)該函數(shù)將父類(lèi)和子類(lèi)關(guān)聯(lián)起來(lái);
4仅仆、super(Little_dog,self).__init__(name,age)的意思是Python運(yùn)行時(shí)器赞,調(diào)用父類(lèi)(Dog)中的__init__()的方法,讓創(chuàng)建Little_dog的實(shí)例時(shí)包含父類(lèi)的所有屬性墓拜;讓創(chuàng)建實(shí)例時(shí)的實(shí)參可以傳遞到父類(lèi)形參中港柜,達(dá)到繼承的目的;
5咳榜、創(chuàng)建子類(lèi)的實(shí)例時(shí)跟父類(lèi)沒(méi)有區(qū)別夏醉,賦予實(shí)參并賦給變量即可;
6涌韩、在Python2.7中畔柔,定義子類(lèi)時(shí),定義的父類(lèi)括號(hào)中必須要包含object關(guān)鍵字臣樱;否則創(chuàng)建實(shí)例時(shí)會(huì)找不到相應(yīng)的屬性靶擦;
super方法中必須要包含子類(lèi)名和對(duì)象self這倆實(shí)參;
7擎淤、定義的子類(lèi)中還包含了dog_papa這一屬性奢啥,且默認(rèn)值為“dog father”,可見(jiàn)在子類(lèi)中也可以給屬性指定默認(rèn)值嘴拢。