We introduce a method for the construction of robust class hierarchies. The base of this construction is a rigorous definition of inheritance. There are four possible inheritance relationships. At least two of them turned out to be important in practice. According to this for the first time, conditions for the correct use of polymorphism are given. We show how inheritance hierarchies can be constructed in a systematic and rigorous way. 1 Introduction The paradigm of object-oriented programming has provided a large number of methods for the design and the implementation of applications, most of which do not provide a solid and formal basis for correctness proofs. Though the methods [1, 5] help to develop a system, there is no support to ass...