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 to inherit behavior from its parent class allowing reuse of code.