物件導向三大特性
封裝根據職責將屬性和方法封裝到乙個抽象的類中
繼承實現**的重用,相同的**不需要重複的編寫
多型不同的物件呼叫相同的方法,產生不同的執行結果,增加**的靈活度繼承的概念:子類擁有父類的所有方法和屬性
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...