Object oriented thinking focuses on modeling real world objects and their interactions. Objects contain attributes and behaviors, and interact by sending and receiving messages. Classes define common properties and behaviors for objects through templates. Class hierarchies allow for generalization and specialization of classes. Object oriented design leads to reusable, maintainable, and scalable systems through concepts like encapsulation, inheritance, polymorphism, and abstraction.