An interface has a name and consists of a set of message declarations
and one or more constructor declarations.
We do not allow (state) variable declarations2
at present
because
the idea is to support specifications in the absence of state
information.
An interface defines a type, a set of messages (services) that the object can handle and constructors for creating new objects of the type. Message declarations can be overloaded.
The ReadWrite interface described in section 2 has two messages Read(), Write(int i) and a constructor ReadWrite(). An object created using the constructor ReadWrite() is of ReadWrite type.