2023-04-20|閱讀時間 ‧ 約 2 分鐘

【中低階級】-[物件導向]-三大特性-多型

三、多型(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)可以看一下主程式與執行結果狀況

分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

橙果杏的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.