Object <- ClassWithMethods |
|
|
ClosestCommonAncestor HasClassMethod IsImplementationSuperclass |
Class ClassWithMethods defines no new attributes.
Fields
| Field | Type | |
|---|---|---|
| ClassWithMethods: | implementationSuperOffset: | UnsignedShort |
| objectMethodOffset: | UnsignedShort |
instance ClassWithMethods tag; implementationSuperOffset: 0; objectMethodOffset: 0; end instance;
Define Class ClassWithMethods; inherits from Object; uses extra; field implementationSuperOffset: UnsignedShort; // offset to implementation superclasses (in extra data) // offset is from start of object field objectMethodOffset: UnsignedShort; // offset to object method data (in extra data) // offset is from start of object // inheritance operation IsImplementationSuperclass(classNumber: ClassNumber): Boolean; // Call to see if a particular class number is one of this // class's implementation superclasses. This is not usually // an interesting check; ClassImplements is much more common. // rarely override intrinsic ClosestCommonAncestor(classNumber1: ClassNumber; classNumber2: ClassNumber): ClassNumber; // returns class number of the deepest class that both classes // inherit from // methods operation HasClassMethod(operationNumber: ClassOperationNumber): Boolean, noFail; // Call to look for a class operation for a given operation // number in this class only. end class;