The formal description of the semantics of object-oriented data models is still an open problem. Some characteristic features of object-oriented data models, such as methods and inheritance, involve investigating data and schema. Therefore they can not be handled straightforwardly with rst order logic. As an alternative, we propose the evolving algebra approach to specify the formal semantics of objectoriented data models. Evolving algebras provide a framework for de ning the operational semantics of programming languages based on dynamic structures. In this paper we show how evolving algebras can be used in particular to de ne the operational semantics of object creation, of overriding and dynamic binding, and of inheritance at the type level type specialization and at the instance level object specialization.