python3-----繼承 過載

愛吃芥末的Mo發表於2019-02-16

通過繼承,新類可以獲得現有類的屬性和方法。新類可以稱作子類或者派生類,被繼承的現有的類稱作父類或者超類。
在子類(派生類)中,可以定義新的屬性和方法,從而完成對父類(超類)的擴充套件。
1.可以通過繼承來定義子類的格式:

class 類名(父類名):
	子類中的語句

2.定義子類的屬性和方法:
python中允許在子類中定義自己的屬性和方法。如果子類定義的屬性和方法於父類的屬性和方法同名,則子類例項物件呼叫子類中定義的屬性和方法。Python允許在子類方法中通過類物件直接呼叫超類的方法。

方法過載:用子類的方法覆蓋父類的方法。

3.呼叫超類的建構函式:
在使用建構函式例項物件進行初始化時,可以在子類的建構函式中呼叫超類的建構函式。

class animal:        #定義父類
		def __init__(self,a):
			self.animal_data = a
class cat(animal):               #定義子類
		   def __init__(self,a,b):                #定義子類的建構函式
					self.cat_data = a
					animal.__init__(self,b)     #呼叫父類建構函式
c = cat("吃",20)				#建立子類例項物件
c.animal_data                                  #顯示繼承屬性
c.cat_data                                        #顯示子類的自定義屬性

4.多繼承:
多繼承:指子類可以同時繼承多個父類。如果父類中存在同名的屬性或方法,Python會按照從左到右的順序在父類中搜尋方法。

5.索引和分片過載:
與索引和分片有關的過載方法包括: __ getitem __ __ setitem __ __ delitem __
__ getitem __ 在例項物件執行索引、分片或for迭代時,呼叫該方法。
__ setitem __ 再通過賦值語句給索引或分片賦值時,呼叫該方法,實現對序列物件的修改。
__ delitem __ 該方法過載del運算,即刪除索引或分片。

相關文章