物件導向 多型學習整理

2021-07-29 07:52:35 字數 1143 閱讀 3455

物件的多型性     

//乙個物件,兩種形態

概述:例如,麵包具備麵食的形態,又具備食物的形態,這就是物件的多型性。簡單說就是乙個物件對應著不同的型別。

多型在**中的體現:父類或者介面的引用指向其子類物件。

多型的好處:

提高了**的擴充套件性,前期定義的**可以使用後期的內容。

多型的弊端:前期定義的內容不能使用(呼叫)後期子類的特有內容。

多型的前提:

1、必須有關係,繼承或實現。

2、要有覆蓋

多型轉型

但是下列情況:

animal a = new animal();

cat c = (cat)a;

這種情況就是不可以的。因為對於轉型,自始自終都是子類物件在做著型別的變化。

引申:instanceof:用於判斷物件的具體型別,只能用於引用資料型別判斷,通常在向下轉型前用於**健壯性判斷

例:public static void method(animal a)

if(a instanceof cat)

cat c = (cat)a;

c.catchmouse();

多型時,成員特點:

1、成員變數(10-8)

編譯時:參考引用型變數所屬的類中是否有呼叫的成員變數,有,編譯通過,沒有,編譯失敗

執行時:參考引用型變數所屬的類中是否有呼叫的成員變數,並執行該所屬類的成員變數

簡單說就是編譯和執行都參考等號左邊

2、成員函式(非靜態)

編譯時,參考引用型變數所屬的類中是否有呼叫的函式,有,編譯通過,沒有,編譯失敗。

執行時,參考是物件所屬的類中是否有呼叫的函式

簡單地說,編譯看左邊,執行看右邊。

3、靜態函式

編譯時:參考引用型變數所屬的類中是否有呼叫的靜態方法

執行時:參考引用型變數所屬的類中是否有呼叫的靜態方法

簡單說,編譯和執行都看左邊

其實對於靜態方法,是不需要物件的,直接用類名呼叫即可。

物件導向 多型

繼承是多型的基礎,是指物件的多種形態 1.引用的多型 1 父類的引用可以指向本類的物件 2 父類的引用可以指向子類的物件 注意 子類的引用不能指向父類的物件 2.方法的多型 1 建立本類物件時,呼叫的方法是本類的方法 2 建立子類物件時,呼叫的方法是子類重寫的方法或是繼承的方法 注意 如果是子類獨有...

物件導向 多型

多型可以簡單的概括為 乙個介面,多種方法 在程式執行過程中才決定呼叫的函式,簡單的說就是,允許將子類型別的指標賦值給父類型別的指標,賦值後,父類物件就可以根據當前賦給它的子類物件的特徵以不同的方式執行。容易混淆的兩個概念 是指允許存在多個同名的函式,而這些函式的參數列不同 或許引數個數不同,或許引數...

物件導向 多型

多型 可以理解為事物存在的多種體現形態。人 男人,女人 動物 貓,狗。貓 x new 貓 動物 x new 貓 1,多型的體現 父類的引用指向了自己的子類物件。父類的引用也可以接收自己的子類物件。2,多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。3,多型的好處 ...