Class Refinement as Semantics of Correct Object Substitutability |
| |
Authors: | Ralph-Johan Back Anna Mikhajlova Joakim von Wright |
| |
Affiliation: | Turku Centre for Computer Science, ?bo Akademi University, Finland, FI
|
| |
Abstract: | Subtype polymorphism, based on syntactic conformance of objects' methods and used for substituting subtype objects for supertype
objects, is a characteristic feature of the object-oriented programming style. While certainly very useful, typechecking of
syntactic conformance of subtype objects to supertype objects is insufficient to guarantee correctness of object substitutability.
In addition, the behaviour of subtype objects must be constrained to achieve correctness. In class-based systems classes specify
the behaviour of the objects they instantiate. In this paper we define the class refinement relation which captures the semantic
constraints that must be imposed on classes to guarantee correctness of substitutability in all clients of the objects these
classes instantiate. Clients of class instances are modelled as programs making an iterative choice over invocation of class
methods, and we formally prove that when a class C′ refines a class C, substituting instances of C′ for instances of C is refinement for the clients.
Received May 1999 / Accepted in revised form March 2000 |
| |
Keywords: | : Class refinement Code inheritance Behavioural compatibility Object substitutability Subclassing Subtyping Semantics of object-oriented constructs Correctness Implicit and explicit invariants New methods |
本文献已被 SpringerLink 等数据库收录! |