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