在学到设计原则"多组合,少继承"时,文中提到: 继承的子类,实际上需要编译期确定下来。而组合却可以比继承灵活得多,可以在运行期才决定某个对象。我想问一下,这里的编译期和运行期分别指什么意思?为什么通过组合就能在运行期决定某个对象呢? 谢谢~
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
简单来说:A从B继承,这一点是不能在运行期改变的。也就是说,你New出来一个A对象,那么,他一定具有B对象的特性和行为(当然不包括重写过的方法)。你在代码编译成执行文件后,就不能改变了。
但是,如果A组合了一个B对象。你就可以在运行时改变这一点。比如:你让A抓着一个B的子类而不是B来实现需要B完成的功能。这样为你的系统提供了更大的灵活性。
- 2 回答
- 0 关注
- 686 浏览
添加回答
举报
0/150
提交
取消