# 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]]