python物件導向(二) 繼承,傳遞,多型

2021-10-06 22:11:09 字數 3210 閱讀 3487

物件導向中,繼承,多型,傳遞是乙個重點知識。

子類繼承父類,子類擁有父類的屬性和方法

class

animal

:def

eat(self)

:print

('吃'

)def

drink

(self)

:print

('喝'

)def

run(self)

:print

('跑'

)# animal為父類,dog 為 animal 的子類

class

dog(animal)

:def

bark

(self)

:print

('旺旺旺'

)# 子類繼承父類的屬性和方法

dog = dog(

)dog.run(

)dog.eat(

)# 子類擁有自己的屬性和方法

dog.bark(

)>>

>跑吃

旺旺旺

子類繼承父類的父類,子類擁有父類的父類屬性和方法

可理解: 兒子像他爸也像他爺爺

class

animal

:def

eat(self)

:print

('吃'

)def

drink

(self)

:print

('喝'

)def

run(self)

:print

('跑'

)class

dog(animal)

:def

bark

(self)

:print

('旺旺旺'

)class

xiaotianquan

(dog)

:def

fly(self)

:print

('我會飛'

)

dog = xiaotianquan(

)dog.fly(

)dog.bark(

)dog.eat(

)>>

>

我會飛旺旺旺

子類同時繼承多個父類,同時擁有多個父類的屬性和方法

# 盡量避免父類之間的方法/屬性重名,若重名根據繼承順序執行重名方法/屬性

classa:

deftest

(self)

:print

('aaaa'

)def

first

(self)

:print

('a-------'

)classb:

defobject

(self)

:print

('bbbbb'

)def

first

(self)

:print

('b-------'

)class

d(a,b)

:pass

d = d(

)d.test()d.

object()

d.first(

)>>

>

aaaa

bbbbba--

----

-

mro

檢視子類的繼承順序

搜尋屬性/方法的順序,先從自身找,再從父類…基類, 沒有則報錯

classa:

deffirst

(self)

:print

('a-------'

)classb:

deffirst

(self)

:print

('b-------'

)class

d(a,b)

:pass

d = d(

)d.first(

)print

(d.__mro__)

>>

>a--

----

-(<

class

'__main__.d'

>

,<

class

'__main__.a'

>

,<

class

'__main__.b'

>

,<

class

'object'

>

)

方法重寫

class

dog:

defbark

(self)

:print

('旺旺旺'

)class

xiaotianquan

(dog)

:def

bark

(self)

:print

('神犬,嗷嗷嗷'

)# 當父類的屬性不滿足子類時,可在子類中重寫,覆蓋父類的方法

dog = xiaotianquan(

)dog.bark(

)>>

>

神犬,嗷嗷嗷

方法重構

保留父類的方法,新增功能

class

dog:

defbark

(self)

:print

('旺旺旺'

)class

xiaotianquan

(dog)

:# 當父類的方法不滿足子類的需求,可以在父類的方法基礎上增加功能

defbark

(self)

:print

('神犬'

)# 呼叫父類的方法

super()

.bark(

)print

('我還會fei'

)

dog = xiaotianquan(

)dog.bark(

)>>

>

神犬旺旺旺

我還會fei

Python物件導向(繼承二)

主要內容 class parent def init self,race,country self.race race self.country country def information self print 我來自 是 人 format self.country,self.race def ...

python 面向繼承物件 繼承

1.python物件導向的繼承指的是多個類之間的所屬關係,即預設繼承父類的所有屬性和方法。2.注意 當乙個類有多個父類的時候,預設使用第乙個父類的同名屬性和方法。3.檢視某個類的繼承關係 物件.mro 4.子類呼叫父類的同名方法和屬性 class a object definit self self...

python 物件導向繼承

coding utf 8 author martin date 2017 10 15 class f def f1 self print f.f1 class s f deff1 self super s,self f1 執行父類的方法,第一種方式,常用這種方式 f.f1 self 執行父類的方法,...