Once programmers write a useful class for one programming project, they can often reuse that class in another program instead of starting from scratch. Example: If you create a class for a deck of cards, you can reuse it for any program needing a deck of cards, like Solitaire or Go Fish.
Programmers can create new objects that inherit traits from existing classes. This means they can add new features to an object without having to recreate it from scratch, saving tons of time and effort. Example: If you create a vehicle class that has all the basic functionality of a vehicle (e.g. moves, carries people or things, starts and stops), you could build on that class to create more specific types of vehicles, like convertibles, bicycles or a semi-truck.
Programs created using OOP are easier to develop because of their flexibility. Objects can be used in a variety of ways and have different behaviors for different purposes, depending on the program. Example: If you create a class for your bank account, many bits of information (e.g. name, social security number, birthdate) are needed to open an account or get a loan. But for simple transactions like making a deposit, only basic information like your name and account number are needed. Your bank account class can work for all of these.
EASY TO MAINTAIN
Object-oriented programs are written modularly (in objects), making them easier to maintain and understand once developed. Example: If you're planning a meal and you burn the cupcakes, you only have to fix the cupcakes, not the whole meal. In OOP, objects can be maintained separately, making finding and fixing problems much easier.