# OOP
Object-oriented programming is built on four pillars:
- **Encapsulation** — bundling data and methods within a class, hiding internal implementation
- **Abstraction** — exposing only necessary features, hiding complexity
- **Inheritance** — deriving properties and behaviors from an existing class (see [[Composition vs Inheritance]])
- **Polymorphism** — objects taking multiple forms, allowing methods to behave differently based on the calling object
---
See also: [[SOLID]], [[Design Patterns]], [[Composition vs Inheritance]]