文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7 充满可能的世界
本书在 Scheme 中简单地逐步构建了对象系统,但我们只阐述了面向对象编程语言的一些基本概念。在语言设计中,总是存在各种各样的可能性有待探索,比如同样的想法的变种、延伸等。
这里给出一些(有限的/随意挑选的)特性和机制,你可以在某些现有的面向对象编程语言中找到,但在我们的讨论中没有涉及。你可以试试将其集成到对象系统中。当然,更有意思的是,你该自己去思考其他特性,还有研究现有的语言并弄清楚如何整合其独特的特性。
- 方法的可见性:public / private
- 声明覆盖超类中方法的方法:override
- 声明不能被覆盖的方法:final
- 声明预期将被继承的方法:inherit
- 可扩展的方法:inner
- 接口(Interface):能理解的消息的集合
- 检查某个对象是否是某个类的实例的协议,检查某个类是否实现某个接口的协议,……
- 超类的正确初始化协议,实名初始化属性
- 多重继承
- Mixins
- Traits
- 类作为对象,元类(metaclass),……
还有许多优化,例如:
- 计算字段的偏移量(offset),以直接访问字段
- 用于直接方法调用的虚函数表(vtable)和索引(indice)
这里以习题的形式介绍两种机制,接口和 mixin,以及它们的组合(即使用接口实现 mixin 规范)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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