Object-oriented programs are built by creating objects that interact with each other. They can contain multiple objects of different types, many objects of the same type, or any combination. Each object possesses its own data, and data access for each type of object is the same. You grant access to data by writing special methods stored in the object.
The fundamental construct of OOP is the class.
Inheritance,
encapsulation,
polymorphism