It is a curious thing that after 30 years of object-oriented programming, we still have no consensus on the meaning of class. The OMG 1991 standard avoided using the term class altogether; and current design notations such as UML and OML still contain certain misconceptions regarding class: the debate on type versus implementation is old and focusses on the wrong argument- a class is not strictly either one of these things. This article unpacks 10 years of theoretical work on extensible interfaces and implementations to explain exactly how a class is different from a concrete type. This work impacts widely on current standards, definitions and notations. Conference Stream Research paper (presents old results in new light)
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.