總網頁瀏覽量

2013年2月27日 星期三

多型plymorphism

簡單來說:在繼承關係之下,透過父類別的類別變數執行子類別的method。

定義:在執行程式,物件能夠依照不同情況變換資料型態。換句話說,多型是指一個類別參考可以在不同環境下,扮演不同角色的特性,指向不同的物件實體,可透過實作多個繼承或介面來實現父類別,並使用Override或Overload來達成。

物件在執行時會依據指向的物件實體類型來呼叫對應方法。前提:子類別必須改寫(override)父類別的方法。
JVM在執行階段可以確認每個物件的實際類型,並呼叫對應方法。
使用多型是為了避免轉型。

作法:
用父類別宣告一個類別變數
這個類別變數用子類別來(new)建立物件


結論,構成多型的三要素,缺一不可:
1.類別要有繼承
2.類別要改寫父類別的方法
3.父類別調用指向子類別的物件


對於java來說,應該呼叫哪一個方法來執行,與變數本身所屬類別無關,而是跟物件本身所屬類別有關。


沒有留言:

張貼留言