python物件導向之封裝 繼承和多型

2021-08-31 16:36:59 字數 1494 閱讀 7446

類似於模板,把事物共有的特徵和行為進行打包,然後建立出來的物件就會具有這些特徵和行為。
1.封裝資料的主要原因是:保護隱私 和 隔離複雜度

2.類的結構

class 類名(object):           #類名的命名規則:大駝峰命名法(每個單詞首字母大寫,單詞之間沒有下劃線)

#類屬性

屬性名 = 值

#類方法

@classmethod #宣告下面的方法屬於類方法

def 方法名(cls):

pass

#靜態方法

@staticmethod #宣告下面的方法屬於靜態方法

def 方法名(): #靜態方法不需要引數傳遞,所以只有乙個括號()

pass

# 例項屬性

def __init__(self): # 初始化

pass

# 例項方法

def 例項方法名(self):

pass

# 例項方法(__call__)

def __call__(self):

pass

#呼叫類屬性、類方法和靜態方法

類名.屬性名()

類名.方法名()

類名.靜態方法名()

#呼叫例項屬性和方法

#首先建立例項(建立物件)

物件名 = 類名() #括號中傳遞實參

物件名.屬性名()

物件名.方法名() #括號中傳遞實參

物件名() #可以直接呼叫call方法,括號中傳遞實參

1.單繼承:繼承乙個父類

class a(object):

pass

class b(a):

pass

重寫(overside):子類繼承父類,父類中的方法不能滿足子類要求時,對父類中的方法進行重寫。(方法名相同,才叫重寫)

super():對父類中的方法進行重寫後,要是還想呼叫,此時就用super

2.私有屬性和私有方法

就是在想要私有的屬性和方法前面加__,這樣外部就訪問不到了。要想訪問就必須提供對外的訪問介面。

注意:前後兩個下劃線:內建方法

前面乙個下劃線:from 模組名 import * 導包的時候防止匯入

3.多繼承:繼承多個父類

class a(object):

pass

class b(object):

pass

class c(a,b): #多個類之間用逗號分隔

pass

注意事項:

搜尋順序:先自身,後從左往右,最後基類(object)

不同的 子類物件 呼叫相同的 父類方法,產生不同的執行結果.

可以 增加**的靈活度.

以 繼承 和 重寫父類方法 為前提.

是呼叫方法的技巧,不會影響到類的內部設計.

物件導向之封裝與繼承

基本資料型別傳遞數值 引用資料型別傳遞的是位址。常量池 儲存資料的時候,先便利本記憶體中是否包含即將要儲存的資料,如果包含,則不重新開闢空間,如果不包含,開闢新的空間儲存。private 只允許本類使用,其他類看不到 封裝 給屬性賦值的時候增加限制 將屬性新增private,只允許本類使用此屬性 將...

物件導向(封裝 繼承)

1.類的訪問修飾符有public private internal protected。其中pubulc 公共的,只要引用了命名空間,就可以隨意進行訪問 private 私有的,只有當前類內部才可以訪問 internal 內部的,當前程式集內可以訪問,程式集就是命名空間,此修飾符是預設的 prote...

物件導向 封裝 繼承

建構函式 建構函式 建立乙個類的函式 每乙個類都有建構函式,訪問修飾符必須是public的,並且不需要寫任何返回值,方法名與類名一致 自己寫的類 使用者自定義型別 如果要使用自定義型別產生出來的 物件 必須有乙個例項化的過程 例項化格式 型別名 ss new 建構函式 訪問修飾符 4個 public...