CLOS是一个对象系统,其中CLOS概念本身是一级对象。类本身是实例 - 属于元类。涉及某些环状循环。
有一个实例standard-object
。它是standard-class
的一个实例。它本身也是一个类。所有标准的CLOS对象都将其作为超类。还有其他类型的对象,例如结构体。因此,standard-object
作为所有典型CLOS对象的超类存在。
standard-class
是它自己的一个实例。它是所有类对象的类。由于standard-object
也是一个类,standard-object
类的实例是standard-class
类的一个实例。由于所有标准类也是CLOS对象,standard-class
继承自standard-object
。
CL-USER 22 > (class-of (find-class 'standard-object))
#<STANDARD-CLASS STANDARD-CLASS 40F016A063>
standard-object
类对象的类是standard-class
。
CL-USER 23 > (class-of (find-class 'standard-class))
#<STANDARD-CLASS STANDARD-CLASS 40F016A063>
standard-class
类对象的类是standard-class
。
CL-USER 24 > (find-class 'standard-object)
#<STANDARD-CLASS STANDARD-OBJECT 40F017732B>
standard-object
类本身既是一个对象又是一个类,它是所有CLOS对象的超类。
CL-USER 25 > (find-class 'standard-class)
#<STANDARD-CLASS STANDARD-CLASS 40F016A063>
standard-class
类本身是一个对象和一个类。它是所有CLOS类的超类。