Relaxing Behavioural Inheritance

Nuno Amálio
(University of Luxembourg)

Object-oriented (OO) inheritance allows the definition of families of classes in a hierarchical way. In behavioural inheritance, a strong version, it should be possible to substitute an object of a subclass for an object of its superclass without any observable effect on the system. Behavioural inheritance is related to formal refinement, but, as observed in the literature, the refinement constraints are too restrictive, ruling out many useful OO subclassings. This paper studies behavioural inheritance in the context of ZOO, an object-oriented style for Z. To overcome refinement's restrictions, this paper proposes relaxations to the behavioural inheritance refinement rules. The work is presented for Z, but the results are applicable to any OO language that supports design-by-contract.

In John Derrick, Eerke Boiten and Steve Reeves: Proceedings 16th International Refinement Workshop (Refine 2013), Turku, Finland, 11th June 2013, Electronic Proceedings in Theoretical Computer Science 115, pp. 68–83.
Published: 24th May 2013.

ArXived at: bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to:
For website issues: