作者JustinHere (良葛格)
看板java
標題Re: [問題] is-a的意義
時間Fri May 4 11:46:27 2018
※ 引述《lueichun (no anonymous)》之銘言:
: 在講解繼承語法的文章內
: 都會講到子類別複製了父類別的內容
: 然後子類別又能去override從父類別複製過來的東西 並新增父類別沒有的東西
: 然後子類別就is-a父類別
: 但我不懂的是
: 既然子類別複製父類別的東西 會去修改它
: 然後又會增加新的 專屬於自己的東西
: 那為什麼還可以說子類別is-a父類別
: 說子類別包含(include)父類別不是比較合理?
: 介紹相關議題的文章 通常是直接舉例說明
: 例如父類別是動物 子類別是貓 狗
: 但總覺得用這樣的例子來說明 有種以偏概全的FU
: 不知道有沒有更general的解釋?
https://www.slideshare.net/JustinSDK/java-se-7-16580919
https://www.slideshare.net/JustinSDK/java-se-7-16580938
https://www.slideshare.net/JustinSDK/java-se-7-16580955
你提過的如果跑車繼承狗,跑車 is a 狗不合理,編譯上確實可以過,
然而,是不合理的繼承,這是語意的問題,不是語法的問題,硬是要
撰寫程式有這樣不合理的語意,就是濫用繼承的概念。
這部份在第三個鏈結中有討論到…
合法的程式並不一定是合理的程式。
--
良葛格學習筆記
http://openhome.cc
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.35.125
※ 文章網址: https://www.ptt.cc/bbs/java/M.1525405592.A.C37.html
※ 編輯: JustinHere (39.10.35.125), 05/04/2018 11:50:12
推 lueichun: 感謝良葛格大大撥冗指導小弟 那我想再請問 雖然JAVA沒有 05/04 13:39
→ lueichun: 多重繼承的觀念 但如果有的話 比方說C繼承A B兩個類別 05/04 13:41
→ lueichun: 那可以說C is a A、C is also a B嗎 05/04 13:42
→ JustinHere: 同樣地,語法上可以,但語意上要留意合不合理 05/04 14:04
→ JustinHere: 比方說,海陸兩用車,繼承車也繼承船的話 05/04 14:06
→ JustinHere: 它 is a 車,它也 is a 船,這算合理 05/04 14:06
→ JustinHere: 跑車繼承車也繼承狗的話,語法上就算行得通 05/04 14:07
→ JustinHere: 語意上就不合理,如果只是為了重用程式碼,那就是濫用 05/04 14:08
推 lueichun: 了解了 謝謝 05/04 14:09
推 weapon0427: Java多重繼承是用interface 05/04 19:49
推 evo1994: 推良葛格~~~ 05/05 01:52