Object-Oriented Programming is a program design approach. It is incorporated with several features and new concepts, which are quite different from other programming techniques such as Modular programming, Structural programming or Procedural programming. It supports objects that are data abstraction with an interface of named operations and a hidden local state. It ties data along with their methods that operate on data. It supports data encapsulation feature by encapsulating the data, which cannot be accessed by external functions. Object orientation demands the concept of data encapsulation so that an object does not permit other objects to access its data and operates directly. The services of an object can be called upon through messages, classes are defined that contains the data members along with methods or functions that operate on data. Data Abstraction, which represents only essential features to the outside world, again is a striking feature of OOPs, besides this inheritance supports reusability and extensibility of code segments, polymorphism implemented through function overloading and operation overloading, compile time polymorphism or dynamic binding are some of the other features of OOPs.
It is different from conventional programming approaches, such as Modular programming, Procedural programming, Top-down & Bottom-up programming, Structural programming, as it incorporates powerful features as mentioned to provide extra power to the programming approach. OOPs model the real world objects with great ease, which was quite difficult with conventional programming languages. There was no data security feature and it moved freely around the system. Overloading, Inheritance, Dynamic binding of modules etc. empowered it further and thus proved to be a good programming approach over other programming approaches.