I can also model encapsulation, inheritance and polymorphism in C. That doesn't make it an object-oriented programming language.
"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them."