[ <parentObjType> ] OBJECT <fields> [ METHODS <methods> ] [ OVERRIDES <overrides> ] END
An object is a record paired with a method suite: a collection of procedures that operate on the object. The fields of an object are specified just like those of records (see section Record Types). Methods are fields that hold procedure values. They are specified as follows:
<methods> = { <method> ";" ... } where <method> = <id> <sig> [ ":=" <proc id> ]
A method signature <sig> is a procedure signature (see section Procedure Types). If a procedure identifier <proc id> is given, it must refer to a procedure which takes as its first parameter the object being defined, and other parameters as specified by the signature <sig>.
Overrides specify new procedures for methods of the supertype:
<overrides> = { <override> ";" ... } where <override> = <id> ":=" <proc id>