面向對象的三大特性
繼承:繼承是一種創建新類的方式,在Python中,新建的類可以繼承一個或者多個父類,父類又可以稱為基類或者超類,新建的類稱為派生類或者子類。
類的繼承分為單繼承和多繼承:
class ParentClass1: #定義父類 pass class ParentClass2: #定義父類 pass class SubClass1(ParentClass1): #單繼承,基類是ParentClass1,派生類是SubClass pass class SubClass2(ParentClass1,ParentClass2): #python支持多繼承,用逗號分隔開多個繼承的類 pass
*如果沒有指定基類,Python的類會默認繼承object類,object是所有的Python類的基類,它提供了一些常見的方法。
繼承與抽象(先抽象後繼承):繼承是基於抽象的結果,通過編程語言去實現它,肯定是先經歷抽象這個過程,才能通過繼承的方式去表達抽象的結果
繼承與重用性:
在開發程序的過程中,如果我們定義了一個類A,然後又想新建立另外一個類B,但是類B的大部分內容與類A相同時,我們不得不從頭開始寫一個類B,這就用到了類的繼承;通過繼承的方式新建類B,讓B繼承A,B會‘遺傳’A的所有屬性(數據屬性和函數屬性),實現代碼的重用。
派生:在繼承的基礎上子類也可以添加自己新的屬性(不會影響到父類)。
抽象類與接口類:
接口類:
1、繼承基類的方法,並且做出自己的改變或者擴展(代碼重用)
2、聲明某個子類兼容與某基類,定義一個接口類interface,接口類中定義了一些接口名(函數名)且並未實現接口的功能,子類繼承接口類,並且實現接口中的功能
抽象類:抽象類是一個特殊的類,他的特殊之處在於只能被繼承不能實例化
抽象類的本質還是類,指的是一組類的相似性,包括數據屬性和函數屬性,而接口類只強調函數屬性的相似性
抽象類是一個介於類和接口直接的一個概念,同時具備類和接口的部分特性,可以用來實現歸一化設計
接口隔離原則: 使用多個專門的接口,而不使用單一的總接口。即客戶端不應該依賴那些不需要的接口。
鉆石繼承:
新式類:廣度優先 =======>Python3 經典類:深度優先 =======>只在Python2
多態
多態指的是一類事物的多種形態:(例如一個父類有多個子類繼承)
封裝:隱藏對象的屬性和實現細節,僅僅對外提供公共訪問方式
好處:將變化隔離;便於使用;提高復用性;提高安全性
原則:將不需要對外提供的內容都隱藏起來;吧屬性都隱藏,提供公共方式對其訪問
私有變量和私有方法:在Python中用雙下劃線開頭的方式將屬性隱藏起來(設置成私有的)
面向對象的三大特性