In our view, the essence of object-oriented programming is not inheritance (multiple or otherwise), nor is it message passing (which is after all just a metaphor for procedure calling), but is rather the organization of memory into local objects, as opposed to having a single global store. This property makes object-oriented programming easier to understand and modify, and also explains its relevance to distributed computing.

-- Goguen & Meseguer. Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics. 1987

A language will be called object-oriented if it is object-based and additionally requires that objects have classes and classes have inheritance:

object-oriented = objects + object classes + class inheritance

... object-oriented programming should be characterized by the nature of its classification mechanisms rather than by the nature of its communication mechanisms. Object-oriented programming is prescriptive in its methodology for classifying objects but is permissive in its methodology for communication.

-- Wegner. The Object-Oriented Classification Paradigm. 1987