文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.4 连接和继承
move()
不是动态连接的并且不使用动态连接方法做工作。然而我们能够传递一个指针和环到 move()
中,它的确不是一个多肽的函数: move()
对于不同的对象不会做不同的处理,它总是增加参数到坐标,忽略其他与坐标相依附的。
当我们上抛从一个环到一个点时,我们没有改变环的状态,换句话说,即使我们把环的 struct Circle
表示当成一个点的 struct Point
,我们不会改变它的内容。结果,把环视为点作为一个类型描述符仍然拥有 Circle
,因为点在它的 .class
部分并没有改变。 draw()
是一个选择器函数,即,它将会使用无论传入什么样的参数作为自身,去处理被 .class
所指示的类型描述符,并且调用在这里存储的画图方法。
一个子类继承它的超类的静态链接的方法 - 这些方法操作子类对象的部分,这些子类对象是已经在超类对象上呈现的。一个子类能够选择支持它自己的方法代替它的超类的动态连接方法。如果继承,即,若没有重写,超类动态的连接的方法就像静态连接的方法一样的起作用并且修改子类对象的超类的部分内容。如果重写,子类他自己的动态连接方法的版本访问子类对象所有的表示,即,对于一个环, draw()
将会调用 Circle_draw()
方法,此方法能够考虑到半径当画环的时候。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论