Abstraction is the concept of hiding the complex implementation details of a system and exposing only the necessary parts. It simplifies interaction with objects by focusing on high-level functionalities.
Encapsulation: Encapsulation is the concept of wrapping data and methods into a single unit or class, restricting access to some components.
Inheritance: Inheritance allows a class (called a subclass) to inherit attributes and methods from another class (called a superclass).
Polymorphism: Polymorphism allows objects of different classes to be treated as objects of a common superclass; it enables one interface to be used for a general class of actions.