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

作者: JustinHere (良葛格)   2018-05-04 11:46:27
※ 引述《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 狗不合理,編譯上確實可以過,
然而,是不合理的繼承,這是語意的問題,不是語法的問題,硬是要
撰寫程式有這樣不合理的語意,就是濫用繼承的概念。
這部份在第三個鏈結中有討論到…
合法的程式並不一定是合理的程式。
作者: lueichun (no anonymous)   2018-05-04 13:39:00
感謝良葛格大大撥冗指導小弟 那我想再請問 雖然JAVA沒有多重繼承的觀念 但如果有的話 比方說C繼承A B兩個類別那可以說C is a A、C is also a B嗎
作者: JustinHere (良葛格)   2018-05-04 14:04:00
同樣地,語法上可以,但語意上要留意合不合理比方說,海陸兩用車,繼承車也繼承船的話它 is a 車,它也 is a 船,這算合理跑車繼承車也繼承狗的話,語法上就算行得通語意上就不合理,如果只是為了重用程式碼,那就是濫用
作者: lueichun (no anonymous)   2018-05-04 14:09:00
了解了 謝謝
作者: weapon0427 (weapon0427)   2018-05-04 19:49:00
Java多重繼承是用interface
作者: evo1994 (Evo)   2018-05-05 01:52:00
推良葛格~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com