Object <- ClassWithMethods <- ClassWithFields <- ClassWithInstances |
|
|
Init IsInterfaceSuperclass |
Class ClassWithInstances defines no new attributes.
Fields
| Field | Type | |
|---|---|---|
| ClassWithMethods: | implementationSuperOffset: | UnsignedShort |
| objectMethodOffset: | UnsignedShort | |
| ClassWithFields: | classMethodOffset: | UnsignedShort |
| ClassWithInstances: | interfaceSuperOffset: | UnsignedShort |
| mixinFieldStartsOffset: | UnsignedShort |
instance ClassWithInstances tag; implementationSuperOffset: 0; objectMethodOffset: 0; classMethodOffset: 0; interfaceSuperOffset: 0; mixinFieldStartsOffset: 0; end instance;
Define Class ClassWithInstances; inherits from ClassWithFields; field interfaceSuperOffset: UnsignedShort; // offset to interface list (in extra data) // offset is from start of object field mixinFieldStartsOffset: UnsignedShort; // offset to mixin field start data (in extra data) // offset is from start of object overrides Init; // Create a new class from parameters. // inheritance operation IsInterfaceSuperclass(classNumber: ClassNumber): Boolean, intrinsic; // Call to see if a particular class number is one of this // class's interface superclasses. Undefined if the class number // is the one for this class itself. Use ClassImplements instead, // which handles that case correctly. // rarely override end class;