Abstraction Abstraction is a process of hiding the implementation details and showing only functionality to the user. Polymorphism Polymorphism is the ability of an object to take on many forms. Inheritance Inheritance is a mechanism in which one object acquires all the states and behaviors of a parent object. Encapsulation Encapsulation is a process of wrapping code and data together into a single unit.