11 物件導向三大特徵(封裝 繼承 多型) 多型

2021-09-27 11:34:44 字數 1130 閱讀 8189

向上轉型

向上轉型的概念

- 向上轉型又叫自動轉型、隱式轉型。

- 向上轉型就是父類引用指向子類例項,也就是子類的物件可以賦值給父類的物件。如:animal dog=new dog(); //dog類是animal類的子類

- 向上轉型是安全的

- 因為任何子類都繼承並接受了父類的方法。從例子中也可以理解,所有的狗狗都屬於狗的父類——動物,這是可行的,

- 向下轉型則不行

- 若說所有的動物都是狗狗就不成立了。(所以向下轉型要通過強制型別轉換,後續章節中會講解)

應用

當乙個子類物件向上轉型父類型別以後,就被當成了父類的物件,所能呼叫的方法會減少,只能呼叫子類重寫了父類的方法以及父類派生的方法(如set()、get()方法),而不能呼叫子類獨有的方法。

父類中的靜態方法是不允許被子類重寫的。

繫結

1、動態繫結

動態繫結:在程式執行期間由jvm根據物件的型別自動的判斷應該呼叫哪個方法,也叫做後期繫結。

2、靜態繫結向下轉型(強制型別轉換)

animal a =

newdog()

;dog d =

(dog)a;

2、向下轉型後,可以呼叫子類自己獨有的方法。

3、用關鍵字instanceof,在執行時判斷乙個物件是否滿足乙個特定型別的例項特徵

- 如果「instanceof」關鍵字左側物件為右側類的例項,則返回true,否則返回false

- 當右側為物件例項的型別、它自身的型別,以及他父類的型別時,返回的都是true

4、不能進行兄弟類間的強制型別轉換,若編寫該語法,則編譯不會報錯,但執行過程會報錯。

用乙個方法傳參的時候先向上轉化成父類 然後再根據實際情況轉化成原來的型別 向下轉型

public

void

feed

(animal obj)

else

if(obj instanceof

dog)

}

python物件導向三大特徵(封裝,繼承,多型)

目錄繼承 繼承方法重寫 多型 python是物件導向的語言,也支援物件導向程式設計的三大特性 繼承 封裝 多型。封裝 隱藏 隱藏物件的屬性和實現細節,只對外提供必要的方法,相當於將 細節封裝起來 只對外暴露 相關呼叫方法 通過 私有屬性,私有方法 的方式,實現 封裝 python追求簡潔的語法,沒有...

物件導向的三大特徵 封裝 繼承 多型

面向過程 當實現乙個功能時,每個步驟都要親歷親為,詳細處理每乙個細節。面向過程 當實現乙個功能時,不關心步驟,找乙個具有該功能的人,完成這件事,注重結果。類 對一類事物的描述,是抽象的。定義類 成員變數 成員方法。物件 是一類事物的例項,是具體的。使用格式 物件名.成員變數 物件名.成員方法 pri...

物件導向三大特徵 封裝

一 封裝 1 程式的問題 無法保證資料的安全性,同時也無法保證資料的有效性。二 封裝的要求 1 private 私有的,被private修飾的內容只能在類的內部使用public 公開的 2 為私有的屬性提供公開的get set方法。a為屬性賦值 set方法 public void set屬性名 資料...