撰寫類時,并非總是要從空白開始,如果要撰寫的類時另一個現成類的特殊版本,可使用繼承,一個類繼承另一個類時,它將自動獲得另一個類的所有屬性和方法
原有的類稱為父類,而新類被稱為子類,子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法,
繼承語法格式:
class 子類名(父類名):
1.子類的__init__方法
創建子類的實體時,Python首先需要完成的任務是給父類的所有屬性賦值,為此,子類的__init__方法在初始化子類屬性時,需要先將父類的所有屬性賦值
子類中給父類屬性賦值的語法格式:
super().__init__(實參變數1,實參變數2,,,,,實參變數n)
比如動物貓Cat這個子類,繼承動物Animal這個父類,撰寫程式如下所示:

注意:
1.創建子類時,父類必須包含在當前檔案中,且位于子類前面,可以通過import匯入到當前檔案,
2.super是一個特殊的函式,幫助Python將父類和子類關聯起來,這行代碼讓Python呼叫Cat的父類的__init__方法,讓Cat類的實體cat包含父類的所有屬性,
我們通過子類將name傳給父類,然后通過呼叫父類的eat方法,實作了子類實體對父類方法的呼叫,驗證了此時子類繼承了父類的所有屬性和方法
2.給子類定義屬性和方法
子類繼承父類后,可添加區分子類和父類的屬性和方法,
比如我們給Cat類添加一個貓特有的屬性捉老鼠的數量num,給Animal類添加一個動物共有的屬性年齡age,撰寫程式如下所示:

對于Cat類的特殊化程度沒有任何限制,可以根據所需的準確程度添加任意數量的屬性和方法,如果一個屬性或者方法是任何動物都有的,而不是動物貓特有的,我們就往動物Animal類中添加,是動物貓特有的我們就往貓Cat類中添加,這樣動物Animal類有動物的通用屬性和方法,貓Cat類有特有的屬性和方法,我們只需根據需要呼叫即可
注意:
子類可以呼叫父類的屬性和方法,但是父類不可呼叫子類的屬性和方法

會提示父類沒有子類的方法等錯誤,
3.重寫父類的方法
對于父類的方法,只要它不符合子類的方法邏輯,都可對其進行重寫,為此,可在子類定義一個這樣的方法,即它與要重寫的父類方法同名,這樣Python在用子類呼叫這個方法的時候,就不會去呼叫父類的同名方法,而是去呼叫子類的同名方法,
撰寫程式如下所示:

我們看到我們在子類中重新撰寫了__str__方法,當子類呼叫該方法時,是呼叫子類中的該方法,而不是父類中的該方法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555751.html
標籤:其他
上一篇:Spring Boot 呼叫外部介面的 3 種方式,還有誰不會?!
下一篇:返回列表
