返回介绍

4.4 连接和继承

发布于 2025-02-24 22:44:38 字数 723 浏览 0 评论 0 收藏 0

move() 不是动态连接的并且不使用动态连接方法做工作。然而我们能够传递一个指针和环到 move() 中,它的确不是一个多肽的函数: move() 对于不同的对象不会做不同的处理,它总是增加参数到坐标,忽略其他与坐标相依附的。

当我们上抛从一个环到一个点时,我们没有改变环的状态,换句话说,即使我们把环的 struct Circle 表示当成一个点的 struct Point ,我们不会改变它的内容。结果,把环视为点作为一个类型描述符仍然拥有 Circle ,因为点在它的 .class 部分并没有改变。 draw() 是一个选择器函数,即,它将会使用无论传入什么样的参数作为自身,去处理被 .class 所指示的类型描述符,并且调用在这里存储的画图方法。

一个子类继承它的超类的静态链接的方法 - 这些方法操作子类对象的部分,这些子类对象是已经在超类对象上呈现的。一个子类能够选择支持它自己的方法代替它的超类的动态连接方法。如果继承,即,若没有重写,超类动态的连接的方法就像静态连接的方法一样的起作用并且修改子类对象的超类的部分内容。如果重写,子类他自己的动态连接方法的版本访问子类对象所有的表示,即,对于一个环, draw() 将会调用 Circle_draw() 方法,此方法能够考虑到半径当画环的时候。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文