1. Encapsulation:
* The bundling of data and methods that operate on the data into a single unit, known as an object.
* Concealing the implementation details from the user.
2. Inheritance:
* The ability to create a new class based on an existing class.
* The new class inherits attributes and methods from the base class.
3. Polymorphism:
* The ability of objects to use methods with the same name but different implementations.
* There are two types of polymorphism: compile-time (static) and runtime (dynamic).
4. Abstraction:
* The process of simplifying complex systems by modeling classes based on the essential characteristics of objects.
* It involves representing the essential features of an object while hiding unnecessary details.
These principles enhance the structure of programs, providing greater flexibility, support, and modularity. OOP allows treating a program as a set of interacting objects, simplifying the development and maintenance processes.