1. Simplicity: software objects model real world objects, so the complexity is reduced and the program structure is very clear.

2. Modularity: each object forms a separate entity whose internal workings are decoupled from other parts of the system.

3. Modifiability: it is easy to make minor changes in the data representation or the procedures in an OO program. Changes inside a class do not affect any other part of a program, since the only public interface that the external world has to a class is through the use of methods.

4. Extensibility: adding new features or responding to changing operating environments can be solved by introducing a few new objects and modifying some existing ones.

5. Maintainability: objects can be maintained separately, making locating and fixing problems easier.



6.  Re-usability: objects can be reused in different programs.

7. Data Re-usability:- “Write a once and use multiple time” we can achieve this by using class. Once We Write a class we can bus it number of time by creating the object for class.

8. Data Redundancy:- Inheritance is the good feature for data redundancy if you need a same functionality in multiple class you can write a common class for the same functionality and inherit that class to sub class.

9. Easy Maintenance:- It is easy to maintain and modify existing code as new objects can be created with small differences to existing ones.

10. Data hiding:- Implementation details are hidden from other modules and other modules has a clearly defined interface.

11. Security:- Using data hiding and abstraction we are providing necessary data only it mean we are maintaining security.

Watch this video to understand the benefits of using object oriented programming.