There’s a famous quote from Alan Kay that you will see bandied about:
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
I think I agree with him, but I often find myself wondering quite what he meant by “extreme late-binding”. I suspect he means that object instances can redefine stuff they inherited from their concrete class. If your OOP platform doesn’t support that, you can emulate it with data and API.