物件導向之動態

2021-09-25 07:12:34 字數 707 閱讀 8735

什麼是多型:

多型是同一父類型別,呼叫同乙個方法後,表現出不同的狀態。(比如寵物這個類,有吃的方法,它們的子類也都有吃的方法,在呼叫父類吃的方法過程中,根據不同的動物有不同的吃的行為)

好處:當程式業務有擴充套件是,使用多型**改動量最小

概念:同一型別,呼叫統一方法,表現出不同狀態。

實現方式:

方法過載:靜態方式實現多型

方法重寫:動態方式實現多型

多型的使用步驟:

裡式替換原則lsp:任何父類出現的位置,都可以使用其子類物件進行替換,方法的引數是父類型別,傳遞實參時,傳遞其子類物件

多型的特點:

父類:方法(虛方法)

子類:重寫父類中的虛方法

多型的實現方式和區別:

3.1)方法的返回值必須是父類型別

3.2)方法的引數必須包括所有的子類需要的所有引數。再在所有引數後面額外加乙個type引數,用來和建立哪個子類物件進行匹配。

3.3)判斷型別,建立物件。例如用switch來進行判斷,用type座switch的引數,逐一對比。

好處:建立物件無需自己new,二是呼叫工廠方法即可。當子類沒有確定,類名和引數頻繁變化的時候,只需要修改工廠類一處即可,整體改動最少。

物件導向 之建立物件

為什麼需要建立物件?使用object建構函式或物件字面量雖然可以建立單個物件,但是這樣在需要建立很多物件時,會產生大量重複的 1.工廠模式 優點 可以建立多個類似的物件 缺點 無法識別物件的型別 使用object建構函式或物件字面量雖然可以建立單個物件,但是這樣在需要建立很多物件時,會產生大量重複的...

物件導向之介面

1.什麼是介面?還有另外乙個關鍵字,也可以用來定義新的資料型別 inte ce 但是,使用inte ce關鍵字定義的新資料型別,有一些特殊的要求 1.1 在這種資料型別中,只能有方法宣告,不能有方法實現。1.2 在這種資料型別中,所宣告的成員變數,預設都是public static final的。1...

物件導向之反射

反射 python中的反射功能是由以下四個內建函式提供 hasattr getattr setattr delattr,改四個函式分別用於對物件內部執行 檢查是否含有某成員 獲取成員 設定成員 刪除成員。class foo object def init self self.name wupeiqi...