开发者社区> 问答> 正文

使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大?

使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大?

展开
收起
小天使爱美 2020-04-07 12:50:04 982 0
1 条回答
写回答
取消 提交回答
  • 不会。回忆前面介绍继承时所讲的内容,当创建一个子类对象时,系统不仅需要为该子类定义的Field分配内存空间,而且需要为它的父类所定义的Field分配内存空间。如果采用继承的设计方式,假设父类定义了2个Field,子类定义了3个Field,当创建子类实例时,系统需要为子类实例分配5块内存空间;如果采用组合的设计方式,先创建被嵌入类实例,此时需要分配2块内存空间,再创建整体类实例,也需要分配3块内存空间,只是需要多一个引用变量来引用被嵌入的对象。通过这个分析来看,继承设计与组合设计的系统开销不会有本质的差别。

    2020-04-07 12:50:27
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
重新定义计算的边界 立即下载
用计算和数据去改变整个世界 立即下载

相关实验场景

更多