1. 程式人生 > >面向對象的三大特性

面向對象的三大特性

true class 原則 使用 類的方法 數據 包括 私有方法 結果

繼承:繼承是一種創建新類的方式,在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中用雙下劃線開頭的方式將屬性隱藏起來(設置成私有的)

面向對象的三大特性