The reductive definition of OO

Object-Oriented Programming is in its essence:

The technique of using dynamic polymorphism to call functions without the source code of the caller depending upon the source code of the callee.

‒ Robert Cecil Martin

Source: https://blog.cleancoder.com/uncle-bob/2018/04/13/FPvsOO.html