首页 新闻 会员 周边

java的继承机制是另一种“组合”吗?

0
悬赏园豆:5 [已解决问题] 解决于 2013-09-28 14:05

个人感觉在java中,如果子类继承父类,则java就是利用上溯机制,如果子类在找某个字段或这方法时在本身类不存在,开始上溯父类,如果父类存在则引用父类的字段或者方法,所以java中的继承有点像组合,不同的是我们组合不能自动上溯,继承可以自动上溯

幸福从不迟疑的主页 幸福从不迟疑 | 初学一级 | 园豆:2
提问于:2013-09-26 22:11
< >
分享
最佳答案
0

还是有区别的,是概念上的。抽象的目的本来就是接近现实。以更好的方式理解。

收获园豆:2
angelshelter | 大侠五级 |园豆:9887 | 2013-09-27 09:36

区别肯定是有的,我的意思是继承是一种简单的组合,但是继承多了一种自动上溯机制

幸福从不迟疑 | 园豆:2 (初学一级) | 2013-09-28 12:52
其他回答(1)
0

继承和组合的关系在于面对多态的时候有差异

继承表示的关系为1对n的关系

而组合呈现的关系是 n*n

收获园豆:3
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-27 09:14

继承表示的关系是1对n的关系而组合呈现的关系是n*n?,能详细说明下么

支持(0) 反对(0) 幸福从不迟疑 | 园豆:2 (初学一级) | 2013-09-28 12:49

@幸福从不迟疑: 

简单的来说拿轿车来说

如果大众 和qq都继承与车

大众有10个款型 qq有10个款型

那么继承下来要表示全部的车就要有20个子类(及1*n,n就是状态)

---------------------------------------------------

如果将内部字段用于组合

及车类里面有2个字段

品牌

款型

那么要表示20种类型那么就是(2*10,及n【品牌】*n【款型】)一共12(2+10)种类型

 

由上面可看出,如果要表示同样多种状态(qq和大众 一共20 种类型),使用组合的比继承有优势

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-29 14:05

@幸福从不迟疑: @小眼睛老鼠: 

然后再说说继承的优势,继承的的规约是强制执行的,及表示的是如果不是这个格式的不可以,那么如果颁布规定,要求一定要怎么样的时候,那么就应该用继承

 

所以综上所诉,如果要表示多种状态,就应该用组合,而表示一种规约 那么就应该用继承

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-29 14:39

@小眼睛老鼠: 原来你说的1*n和n*n是这个意思,3q,受教了

支持(0) 反对(0) 幸福从不迟疑 | 园豆:2 (初学一级) | 2013-09-29 19:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册