Python快速學習 類的繼承

2021-10-14 17:06:54 字數 1709 閱讀 2244

什麼叫繼承呢?我們平時經常說,某人繼承了媽媽的雙眼皮,這是基因層面的繼承。類的繼承也是如此,乙個類繼承另乙個類,和孩子在基因層面繼承父母特徵一樣,繼承的同時又有些新增的特徵。

被繼承的類叫parent,繼承的類叫child。沒錯,就是父母和子女的關係。

我們設定乙個「狗」類,給它設定乙個子類,比如泰迪或者柯基。泰迪或者柯基都是狗,都具有狗的一般特點,但是具體有不同,比如柯基的屬性是小短腿,泰迪的屬性捲毛、棕色等。

class

dog():

def__init__

(self,age)

: self.age = age

defbark

(self)

:print

("woof!woof!woof!"

)class

corgi

(dog)

:def

__init__

(self,age)

: self.age =

1def

roll

(self)

:print

("gulugulu!"

)puppy1 = corgi(21)

puppy1.bark(

)puppy1.roll(

)

我們可以觀察到,父類dog中,定義了乙個狗的年齡,定義了乙個方法叫bark。所有的狗都有年齡,也都會叫。然後我們定義了乙個柯基corgi子類,繼承了父類dog的全部屬性,同時具有乙個打滾的屬性,是父類沒有的新增屬性。

如果大家有興趣,可以多定義幾種狗的子類,再多例項幾隻不同的狗。

有句話叫「取其精華,去其糟粕」,程式設計也如此,我們想讓這個子類繼承父類的優秀傳統,而如果父類有些屬性,子類並不需要,那麼怎麼辦呢?

當然是重寫了!

上**,我們知道父類dog()有個bark屬性,例項狗狗會發出三聲「woof!」,但我們不想讓這個子類繼續這樣叫,我們想給小狗狗換個叫聲,可行嗎?

直接上**。run一下**,看看我們創造的叫puppy1的狗狗會怎樣叫?

class

dog():

def__init__

(self,age)

: self.age = age

defbark

(self)

:print

("woof!woof!woof!"

)class

corgi

(dog)

:def

__init__

(self,age)

: self.age =

1#改寫父類的bark屬性

defbark

(self)

:print

("wuwuwuw!"

)def

roll

(self)

:print

("gulugulu!"

)puppy1 = corgi(21)

puppy1.bark(

)puppy1.roll(

)在這裡插入**片

結果給大家看下吧!

說明我們對父類屬性的重寫是成功的。

好了,下次再見!

python 類 繼承 python 類的繼承

1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...

Python學習之路 類繼承

如果兩個類具有同名的屬性和方法的時候就可以使用繼承,例如b類繼承a類,那麼在b類中就有類a中的屬性以及方法。被繼承的類叫做父類,繼承的而得類叫做子類。繼承是物件導向程式設計的第二個特性。一般來說,父類是一些公有的屬性和方法,因此類的繼承能夠減少 的冗餘,提公升 的可讀性,提高開發效率。幾乎在所有物件...

python學習(13) 類 3 類的繼承

class user 定義乙個名為user的類 使用者類 def init self,username,password 初始化屬性username和password self.username username self.password password def login self 使用者登入...