开发者社区 问答 正文

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

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

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

    2020-04-07 12:50:27 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等