The basic features of OOP are:
Encapsulation: Creation of self-contained modules that bind together the data and the functions that access that data.
Abstraction: Handles complexity and allows the implementation of further complex logic without disclosing it to the user object.
Polymorphism: Operation performed depends upon the context at runtime to facilitate easy integration.
Inheritance: Creation of classes in a hierarchy to enable a class inherit behavior from its parent class allowing reuse of code.