The characteristics of OOP are as follows:
- Class: Basic building blocks of OOP and a single entity that has data and operations on data together.
- Object: The instances of a class that are used in real functionality - its variables and operations.
- Data Abstraction: Specifying what to do but now how to do it; a flexible feature for having an overall view of an object's functionality.
- Encapsulation: Binding data and operations of data together in a single unit.
- Inheritance: Reusability and extension of existing classes.
- Polymorphism: Multiple definitions for a single name. Functions with the same name with different functionality. Saves time in investing in many functions named Operator and Functions overloading.
- Message Passing: Objects communicate through invoking methods and sending data to them. This feature of sending and receiving information among objects through function parameters is known as Message-passing.