Reorganization and evolution of class hierarchies is important for object-oriented system development and has received considerable attention in the literature. The contributions of this paper are: (1) A formal study of a set of extension relations and transformations on class hierarchies. (2) A presentation of a small set of primitive transformations which form a minimal and complete basis for the extension relations. (3) An analysis of the impact of these transformations on the object level. The study leads to a better understanding of evolution and reuse of object-oriented software and class hierarchies. It also provides a terminology and a means of classification for design reuse. The theory presented in this paper is based on the Demeter data model, which gives a concise mathematical foundation for classes and their inheritance and part-of relationships. Parts of the theory have been implemented in the Demeter SystemTMC++, a CASE tool for object-oriented design and programming.