繼承是為了代碼復用和設計復用而設計的,是面向對象程序設計的重要特徵之一。當我們設計一個新類時,如果可以繼承一個已有的設計良好的類然後進行二次開發,無疑會大幅度減少開發工作量。
1. 類的繼承
類繼承語法:
Class 派生類名(基類名): #基類名寫在括號裡
派生類成員
在繼承關係中,已有的,設計好的類稱為父類或基類,新設計的類稱為子類或派生類。派生類可以繼承父類的公有成員,但是不能繼承其私有成員。
在python中繼承的一些特點:
A、 在繼承中基類的構造函數(__init__()方法)不會被自動調用,它需要在其派生類的構造中親自專門調用
B、 如果需要在派生類中調用基類的方法時,通過「基類名.方法名()」的方法來實現,需要加上基類的類名前綴,且需要帶上self參數變量。區別於在類中調用普通函數時並不需要帶上self 參數。也可以使用內置函數super()實現這一目的。
C、 Python總是首先查找對應類型的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查找(先在本類查找調用的方法,找不到才去基類中找)。
如下是類的繼承應用
1.1 類的多繼承
Python的類可以繼承多個基類。繼承的基類列表跟在類名之後。類的多繼承語法:
例如定義C類繼承A,B二個基類如下:
1.2 方法重寫
重寫必須出現在繼承中。它是指當派生類繼承了基類的方法之後,如果基類方法的功能不能滿足需求,需要對基類的某些地方進行修改,可以在派生類重寫基類的方法,也就是重寫。
同一種事務的多種形態 就是多態
車有多種形態,你沒有具體學習某一個對象,你是學的怎麼開車(這就是多態性)
1、增加了程序的靈活性
以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal)
2、增加了程序可擴展性
通過繼承animal類創建了一個新的類,使用者無需改變自己的代碼 還是func(animal)去調用