推 qrtt1:不太懂,又用不到就先跳過吧。 10/25 21:42
推 yyc1217:假設你現在要寫一個動物園 你有Animal類別跟許多繼承於 10/25 22:38
→ yyc1217:Animal的其他動物類別(假設有Dog及Cat) 10/25 22:40
→ yyc1217:現在你不知道程式傳進來的是dog還是cat 10/25 22:42
推 liyard:看到中文命名我頭好痛orz 10/25 22:45
推 yyc1217:所以你會宣告一個Animal參數 用來指向任一個傳進來的物件 10/25 22:45
→ yyc1217:但你不能宣告cat或dog參數 因為他們彼此不能通過"IS-A" 10/25 22:47
推 yyc1217:這就是多型的好處 用來處理不知道會傳進什麼物件的情況下 10/25 22:49
→ yyc1217:但你知道傳進來的都是"Animal" 就可以這樣寫 10/25 22:51
推 qrtt1:以父類別宣告然後以子類別的建構子new <-- 請搜尋 10/25 23:50
推 TsaiCF:多年前我是看侯俊傑老師的多型與虛擬開始對oop有入門感覺的 10/26 01:51
推 TsaiCF:(雖然那本是c++).另外要看應用面,可以找design pattern來看 10/26 01:54
→ s66449:yyc1217~請問程式是自己寫的,為什麼會不知道傳入的是dog 10/26 09:59
→ s66449:還是cat? 10/26 10:01
推 kasase:假設你的function是比較兩隻傳入動物的年紀 10/26 12:26
推 yyc1217:工作上你寫的程式別人也有可能會用到 10/26 15:31
→ yyc1217:並且未來動物的種類也有可能會增加 像多個無尾熊 熊貓之類 10/26 15:33
→ yyc1217:這樣你原來的函式就不用再修改了 而且每隻動物都可以用 10/26 15:35