java基礎之物件導向的第三個特徵 多型

2021-08-03 07:33:45 字數 1085 閱讀 7783

某一類事物的多種存在形態。

當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去呼叫子類的同名方法。

多型的好處:可以使程式有良好的擴充套件,並可以對所有類的物件進行通用處理。

以下是乙個多型例項的演示,詳細說明請看注釋:

public

class

test

//注意:對於轉型,自始自終都是子類物件在做著型別的變化。

public

static

void show(animal a) else

if (a instanceof dog)

} }abstract

class

animal

class

catextends

animal

public

void work()

} class

dogextends

animal

public

void work()

}結果:

吃魚抓老鼠

吃骨頭看家

吃魚抓老鼠

多型時,成員的特點:

1,成員變數。

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

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

簡單說:編譯和執行都參考等號的左邊。

2,成員函式(非靜態)。

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

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

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

因為成員函式存在覆蓋特性。

3,靜態函式。

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

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

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

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

物件導向的第三個特徵 多型I

多型 某一種事物的多種存在形態。class 動物 class 貓 extends 動物 class 狗 extends 動物 乙個貓物件,存在了多種形態 動物 x new 貓 乙個物件,兩種形態。父類建立的,指向了子類的物件。貓這類事物,既具備了貓的形態,又具備了動物的形態,這就是物件的多型性。簡單...

addEventListener的第三個引數詳解

示例 element.addeventlistener mousedown func,element.addeventlistener mousedown func,element.addeventlistener mousedown func,element.addeventlistener mo...

Java基礎之物件導向

注重點重點不同,面向過程注重的是過程,我是事務的執行者 物件導向注重物件,我是事務的指揮者。1.將複雜問題簡單化 2.從事物的執行者轉化為事物的指揮者 3.跟貼近人的思維,懶人思想 類 一類抽象事物的描述 模板 物件 用類建立出來的就是物件 具體的事物 區別 成員變數和區域性變數 區別 1.書寫位置...