This paper is concerned with mechanisms for preserving the behavioral properties of subclasses that redefine methods of superclasses. It explores the various mechanisms suggested in the literature, and brings out their limitations. The explored approaches include Eiffel’s plug-in match and contract semantics, and case analysis of Java modeling language (JML) and object constraint language (OCL). While the former approach is limited in allowing certain useful redefinitions, the latter approaches are inconvenient and inelegant. The author proposes an approach to specify method redefinition that is more natural, and expressive enough to allow a more general class of redefinitions.
The paper is well written and easy to read. The ideas are also illustrated with a simple example. The issue of assertion languages for specifying contracts is mixed up with the issues related to semantics of redefinition, which makes the paper slightly difficult to read.