- modularity - the gang of four
- reusability - inheritance and polymorphism allows code reuse
- scalability - code organization helps in scaling to large codebases (netflix btw)
- maintainability - changes to one class doesnt affect others. thus simplifying updates
- real world modelling - oop mirrors real world by having objects and methods.
- flexibility
- security