为了账号安全,请及时绑定邮箱和手机立即绑定

请教编译期和运行期的区别

请教编译期和运行期的区别

潇潇雨雨 2018-11-13 05:02:44
在学到设计原则"多组合,少继承"时,文中提到: 继承的子类,实际上需要编译期确定下来。而组合却可以比继承灵活得多,可以在运行期才决定某个对象。我想问一下,这里的编译期和运行期分别指什么意思?为什么通过组合就能在运行期决定某个对象呢? 谢谢~
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

简单来说:A从B继承,这一点是不能在运行期改变的。也就是说,你New出来一个A对象,那么,他一定具有B对象的特性和行为(当然不包括重写过的方法)。你在代码编译成执行文件后,就不能改变了。

但是,如果A组合了一个B对象。你就可以在运行时改变这一点。比如:你让A抓着一个B的子类而不是B来实现需要B完成的功能。这样为你的系统提供了更大的灵活性。


查看完整回答
反对 回复 2018-11-14
  • 2 回答
  • 0 关注
  • 686 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信