Python學習 物件導向 單繼承與多繼承

2021-09-19 13:51:20 字數 2329 閱讀 3147

物件導向三大特性

封裝根據職責屬性方法封裝到乙個抽象的

繼承實現**的重用,相同的**不需要重複的編寫

多型不同的物件呼叫相同的方法,產生不同的執行結果,增加**的靈活度繼承的概念子類擁有父類的所有方法屬性

1) 繼承的語法

class 類名(父類名):

pass

2) 專業術語

3) 繼承的傳遞性

子類擁有父類以及父類的父類中封裝的所有屬性方法

提問:哮天犬能夠呼叫cat類中定義的catch方法嗎?

答案:不能,因為哮天犬cat之間沒有繼承關係

應用場景

重寫父類方法有兩種情況:

覆蓋父類的方法

對父類方法進行擴充套件

1) 覆蓋父類的方法

具體的實現方式,就相當於在子類中定義了乙個和父類同名的方法並且實現

重寫之後,在執行時,只會呼叫子類中重寫的方法,而不再會呼叫父類封裝的方法2) 對父類方法進行擴充套件

class animal:

def eat

(self)

:print

("吃---"

) def drink

(self)

:print

("喝---"

) def run

(self)

:print

("跑---"

) def sleep

(self)

:print

("睡---"

)class dog

(animal)

: def bark

(self)

:print

("汪汪叫"

)class xiaotianquan

(dog)

: def fly

(self)

:print

("我會飛"

) def bark

(self)

: # 1. 針對子類特有的需求,編寫**

print

("神一樣的叫喚..."

) # 2. 使用 super()

. 呼叫原本在父類中封裝的方法

# super()

.bark()

# 父類名.方法(self)

dog.

bark

(self)

# 注意:如果使用子類呼叫方法,會出現遞迴呼叫 - 死迴圈!

# xiaotianquan.

bark

(self)

# 3. 增加其他子類的**

print

("$%^*%^$%^#%$%"

)xtq =

xiaotianquan()

# 如果子類中,重寫了父類的方法

# 在使用子類物件呼叫方法時,會呼叫子類中重寫的方法

xtq.

bark

()

python學習 物件導向 類 物件 繼承

約定成俗的類的命名方式 1 首字母大寫 2 為了與其他進行區分盡量避免使用 建議採用studenthomework小駝峰的格式 類的常規格式 class student 定義變數 資料成員 student sum 80 類變數 建構函式 def init self,name,age 其中的self....

python 面向繼承物件 繼承

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

Python 物件導向學習繼承(11 17)

物件導向 繼承性 封裝性 多型性 繼承性 1.子類繼承父類類變數 from inherit import human class student human 繼承方式 def init self,school,name,age self.school school human.init self,n...