三、多型(polymorphism)
多型就是在同事物下使用不同條件就可以表現出不同的形態。舉例來說:以「小貓」為例它會有不同的屬性,包括品種、名字、年齡等等,對於每一隻就會有不同的動作如:趴、走、坐、跑等等行為。那麼
.小貓就屬於「同一事物」
.品種、名字、年齡這些就屬於「不同條件」
.趴、走、坐、跑這些就屬於「不同的形態」
多型可分為兩種:
1.多載(overload):
多個方法使用相同的名稱,但參數不同
說明:
(1)「ClassCat類別」的「Action」就屬於多載,因為有多個方法使用同一個名稱Action,實例使用有兩個,一個是沒有帶參數的,另一個是有帶參數Talk。 (2)那麼主程式和執行結果可以看一下,它們與使用多型的類別之間的操作與呈現狀況
2.覆寫(override):
使用相同的名稱與相同的參數,另外再去做改寫
(我們新增一個子類別classRabbit繼承上一篇的父類別ClassAnimal)
說明:
(1)在父類別(ClassAnimal)有一個Action()前面有一個abstract 的修飾詞表示必須要被覆寫 (2)子類別(classRabbit)的第19-22行:這邊就是在做override覆寫的動作 (3)在父類別(ClassAnimal)第44-48行:這邊就是新增food方法,使用virtual(虛擬)的修飾詞,是不一定要做覆寫的。 (4)子類別(classRabbit)的第19-22行:這邊想要使用food方法,並且內容做更改,從「紅蘿蔔」改成「果園草」 (5)可以看一下主程式與執行結果狀況