我遇到以下陈述:
(Metaclass class) new. "Uses the new of Behavior but throws error because Metaclass class is singleton"
Metaclass new. "Uses the new of Behavior"
Run Code Online (Sandbox Code Playgroud)
我以为那Metaclass class就是Metaclass为什么答案不同的原因?我似乎无法弄清楚方法查找的工作方式。我需要遵循哪个层次树?在哪里可以找到具有基本类的几乎完整的树?
类/元类关系是Smalltalk中最复杂的主题之一,但它也是所有事物以一致的方式组合在一起的优雅方式的一部分。
方法查找始于对象类(该类描述对象)所持有的MethodDictionary,并沿继承链向上进行。
通常,您不应该创建Metaclass的新实例,而应该让IDE /工具为您创建Metaclass,这是创建新类的副作用(将#'subclass:...'发送到现有的超类)。
您可以在Smalltalk映像中找到一棵基本类树。详细信息取决于方言,Squeak应该具有“类层次结构浏览器”,使您可以查看事物。
以下是有助于我形象化关系的图片。
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |