某一類事物的多種存在形態。
當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去呼叫子類的同名方法。
多型的好處:可以使程式有良好的擴充套件,並可以對所有類的物件進行通用處理。
以下是乙個多型例項的演示,詳細說明請看注釋:
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.書寫位置...