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

2023/04/20閱讀時間約 1 分鐘

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

為什麼會看到廣告
橙果杏
橙果杏
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
發表第一個留言支持創作者!