Re: [問題] is-a的意義

看板java作者 (良葛格)時間6年前 (2018/05/04 11:46), 6年前編輯推噓4(407)
留言11則, 4人參與, 6年前最新討論串2/2 (看更多)
※ 引述《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

05/04 13:39, 6年前 , 1F
感謝良葛格大大撥冗指導小弟 那我想再請問 雖然JAVA沒有
05/04 13:39, 1F

05/04 13:41, 6年前 , 2F
多重繼承的觀念 但如果有的話 比方說C繼承A B兩個類別
05/04 13:41, 2F

05/04 13:42, 6年前 , 3F
那可以說C is a A、C is also a B嗎
05/04 13:42, 3F

05/04 14:04, 6年前 , 4F
同樣地,語法上可以,但語意上要留意合不合理
05/04 14:04, 4F

05/04 14:06, 6年前 , 5F
比方說,海陸兩用車,繼承車也繼承船的話
05/04 14:06, 5F

05/04 14:06, 6年前 , 6F
它 is a 車,它也 is a 船,這算合理
05/04 14:06, 6F

05/04 14:07, 6年前 , 7F
跑車繼承車也繼承狗的話,語法上就算行得通
05/04 14:07, 7F

05/04 14:08, 6年前 , 8F
語意上就不合理,如果只是為了重用程式碼,那就是濫用
05/04 14:08, 8F

05/04 14:09, 6年前 , 9F
了解了 謝謝
05/04 14:09, 9F

05/04 19:49, 6年前 , 10F
Java多重繼承是用interface
05/04 19:49, 10F

05/05 01:52, 6年前 , 11F
推良葛格~~~
05/05 01:52, 11F
文章代碼(AID): #1QwzUOmt (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1QwzUOmt (java)