返回介绍

7 充满可能的世界

发布于 2025-02-20 00:17:09 字数 754 浏览 0 评论 0 收藏 0

本书在 Scheme 中简单地逐步构建了对象系统,但我们只阐述了面向对象编程语言的一些基本概念。在语言设计中,总是存在各种各样的可能性有待探索,比如同样的想法的变种、延伸等。

这里给出一些(有限的/随意挑选的)特性和机制,你可以在某些现有的面向对象编程语言中找到,但在我们的讨论中没有涉及。你可以试试将其集成到对象系统中。当然,更有意思的是,你该自己去思考其他特性,还有研究现有的语言并弄清楚如何整合其独特的特性。

  • 方法的可见性:public / private
  • 声明覆盖超类中方法的方法:override
  • 声明不能被覆盖的方法:final
  • 声明预期将被继承的方法:inherit
  • 可扩展的方法:inner
  • 接口(Interface):能理解的消息的集合
  • 检查某个对象是否是某个类的实例的协议,检查某个类是否实现某个接口的协议,……
  • 超类的正确初始化协议,实名初始化属性
  • 多重继承
  • Mixins
  • Traits
  • 类作为对象,元类(metaclass),……

还有许多优化,例如:

  • 计算字段的偏移量(offset),以直接访问字段
  • 用于直接方法调用的虚函数表(vtable)和索引(indice)

这里以习题的形式介绍两种机制,接口和 mixin,以及它们的组合(即使用接口实现 mixin 规范)。

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

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

发布评论

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